【发布时间】:2018-05-24 20:04:00
【问题描述】:
我创建了一个用 D3 制作圆环图的函数,它在第一次调用时效果很好。但是,随后它被称为 SVG 元素,它附加是空的,并且路径被附加到第一个图表。我是 D3 的新手,所以我很有可能在我的职能中做坏事。控制台中没有错误消息。如果您看到奇怪的东西,请告诉我。谢谢!!
函数如下:
function donutChart (id, data, color) {
var donut = (function(one){
console.log("Hello");
var width = 400;
var height = 400;
var radius = 200;
var greyColor = '#e8e8e8';
var dataColor = '#1dafd3';
var red
var colors = d3.scaleOrdinal([color, greyColor]);
var piedata = [{
name: "one", value: data
}, {
name: "two", value: (1 - data)
}];
var arc = d3.arc().innerRadius(radius - 50).outerRadius(radius);
var donutChart = d3.select(id).append('svg')
.attr('width', width)
.attr('height', height)
.append('g')
.attr('transform', 'translate(' + (width - radius) + ',' + (height - radius) + ')');
var pie = d3.pie()
.sort(null)
.value(function(piedata) { return piedata.value; });
var arc_g = d3.select('svg g').selectAll('arc').data(pie(piedata)).enter()
.append('g')
.attr('class', 'slice');
console.log()
arc_g.append('path').attr("d",arc)
.attr('fill', function(d, range) {
return colors(range);
})
})();
};
这是函数调用,第一次效果很好,第二次就不行了。
donutChart (songData.audio_features[0].danceability, "#1dafd3");
donutChart (songData.audio_features[0].acousticness, "#1dafd3");
【问题讨论】:
标签: javascript function d3.js charts