在某些情况下,我能够将我的数据绑定到父元素(例如<svg>
容器),然后附加子<path>
元素,然后d
用数据更新它们的属性。其他时候,我似乎无法做到这一点。
例如,在我的代码中,我有
var svg = d3.select(this).selectAll("svg").data([allSeries]);
其中allSeries
是我的三个时间序列数据的 3 元素数组。然后我为每个元素添加一个path
。
var gEnter = svg.enter().append("svg").append("g");
for (var i = allSeries.length - 1; i >= 0; i--) {
gEnter.append("path").attr("class", "line").style("opacity", 0);
};
后来,当需要添加/更新数据时,我尝试了这个
g.selectAll(".line")
.attr("d", function(d) { return line(d.values); })
但它没有用。但是,这确实有效
g.selectAll(".line")
.data(allSeries)
.attr("d", function(d) { return line(d.values); })
那么我怎样才能让我的.line
元素从中读取数据svg
呢?