这是关于 SO: D3-issues on first transition after initialization的这个问题的后续。
我已经研究并实现了 Mike 和 Jason 在他们的回答中解释的关键功能。我还发现这篇博文很有用http://knowledgestockpile.blogspot.com/2012/01/understanding-selectall-data-enter.html
我用过像这样的钥匙
.data(svg.chartData, function(d) { return d.idSeries;})
映射一对一的数据和索引。
但是,重绘时我没有得到预期的结果和数据点交换。请查看http://jsbin.com/avoced/8/edit,具体到以下相关功能:
图表初始化:
svg.series = svg.selectAll(".series").data(svg.chartData, function(d) { return d.idSer;})
svg.series.enter().append("g").classed("series", true)
svg.rects = svg.series.selectAll("rect").data(Object, function(d) { return d.x;})
svg.rects.enter().append("rect")
重绘:
svg.series = svg.selectAll(".series").data(svg.chartData, function(d) { return d.idSer;})
svg.series.enter().append("g").classed("series", true)
svg.series.exit().remove()
svg.rects = svg.series.selectAll("rect").data(Object, function(d) { return d.x;})
svg.rects.enter().append("rect")
svg.rects.exit().remove()
秤:
x = d3.scale.ordinal()
.domain(svg.pointsNames, function(d) { return d;})
.rangeRoundBands([0,width], .1);
我在这里想念什么?
非常感谢