私の質問によると、私の<g>
要素はクラス ".arc"で挿入されていますが、パスはありません。どんなアイデアを私は見逃しましたか?d3js単純なドーナツチャートでは描画パスがありません
function DonutChart(el) {
var self = this;
this.el = el;
this.initChart();
}
DonutChart.prototype.initChart = function() {
this.data = [
{
color: "#F57D28",
taux: 25
},
{
color: "FFB4E6",
taux: 25
},
{
color: "#50BE87",
taux: 25
},
{
color: "#F57D28",
taux: 25
}
];
var self = this;
this.margin = {
top: 5,
right: 10,
bottom: 5,
left: 0
}
this.width = $(this.el).width() - this.margin.left - this.margin.right;
this.height = $(this.el).height() - this.margin.top - this.margin.bottom;
this.radius = Math.min(this.width,this.height)/2;
var visWidth = $(this.el).width();
var visHeight = $(this.el).height();
this.svg = d3.select(this.el)
.append('svg')
.attr("class", 'DonutChart')
.attr("width", visWidth)
.attr("height", visHeight)
.append('g')
.attr('class','DonutChartLayer')
.attr('transform', 'translate(' + visWidth/2 + ',' + visHeight/2 + ')');
this.arc = d3.arc()
.outerRadius(this.radius)
.innerRadius(20);
this.draw();
}
DonutChart.prototype.draw = function() {
var self = this;
this.pie = d3.pie()
.sort(null)
.value(function(d) { return console.log(d.taux); d.taux; });
this.g = self.svg.selectAll('.arc')
.data(self.pie(self.data));
this.g.enter().append("g")
.attr("class", "arc");
this.g.append("path")
.attr("d", self.arc)
.style("fill", function(d) {
return d.data.color;
});
}
'd3.arc()'と'd3.pie()'はD3 v4.xの正しい関数名です –