【发布时间】:2014-03-04 13:20:56
【问题描述】:
我能够根据用户交互生成饼图并向其动态添加数据。
这是小提琴http://jsfiddle.net/L5Q8r/
我面临的问题是在从饼图中删除数据的过程中。 当复选框未选中时,我将从“数据集”中删除数据并更新图表。
图表正在更新,但用户仍然可以看到之前的“饼图”。
我尝试添加“.exit().remove()”但没有成功。这是我所做的:
var updateChart = function (dataset) {
arcs.data(pie(dataset))
.enter()
.append("path")
.attr("stroke", "white")
.attr("stroke-width", 0.8)
.attr("fill", function (d, i) {
return color(i);
})
.attr("d", arc);
arcs.data(pie(dataset)).exit().remove(); // Executing but not working
arcs.transition()
.duration(duration)
.attrTween("d", arcTween);
sliceLabel.data(pie(dataset));
sliceLabel.transition()
.duration(duration)
.attr("transform", function (d) {
return "translate(" + (arc.centroid(d)) + ")";
})
.style("fill-opacity", function (d) {
if (d.value === 0) {
return 1e-6;
} else {
return 1;
}
});
sliceLabel.data(pie(dataset))
.enter()
.append("text")
.attr("class", "arcLabel")
.attr("transform", function (d) {
return "translate(" + (arc.centroid(d)) + ")";
})
.attr("text-anchor", "middle")
.style("fill-opacity", function (d) {
if (d.value === 0) {
return 1e-6;
} else {
return 1;
}
})
.text(function (d) {
return d.data.Population;
});
sliceLabel.data(pie(dataset)).exit().remove();//executing but not working
};
任何帮助将不胜感激。 TIA。
【问题讨论】:
标签: javascript jquery charts d3.js pie-chart