1

这是关于 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); 

我在这里想念什么?

非常感谢

4

0 回答 0