我可以通过选择和更新各个属性来更新图表,但不能通过输入,更新和退出来进行更新。
此代码似乎可以正常工作:
var chart = d3.select(svg).select("svg");
chart.selectAll("rect").data(data)
.attr("x", function(d, i) {
return i*bar_width;
})
.attr("y", function(d) {
return height - Math.abs(y(d) / 2) - height / 2 + 2;
})
.attr("height", function(d) {
return Math.abs(y(d));
})
.attr("width", bar_width);
但是,以下代码(在我使用Enter,Update,Exit的地方)不起作用:
var chart = d3.select(svg).select("svg");
chart.selectAll("rect").data(data)
.enter().append("rect") //Enter
.attr("x", function(d, i) { //Update
return i*bar_width;
})
.attr("y", function(d) {
return height - Math.abs(y(d) / 2) - height / 2 + 2;
})
.attr("height", function(d) {
return Math.abs(y(d));
})
.attr("width", bar_width);
chart.selectAll("rect").exit().remove(); //Remove
我想知道为什么吗?仅供参考:我正在使用d3 v5。