我创建了一个包含数据值的组:
var group = svg.append("g");
group.data([{color : "green", opacity: 0.3 }]);
如果我想更新这些值,是否需要设置一个新的数据数组?
group.data([{color : "blue", opacity: 0.3 }]);
或者我可以以某种方式迭代和更新组内的值,例如:
group.data.foreach(d, function() { return d.color = "blue"; })
或者
group.data.foreach(d, function() { return d.opacity += 0.5; })
我的用例是我有一个带有矩形和圆形的组。该小组中有数据。
var group = svg.append("g");
group.data([{color : "green", opacity: 0.3 }]);
var line = group.append("rect");
line.attr("x", self.xWorldToGraph(xx) - self.lineWidth / 2)
.attr("y", self.yWorldToGraph(yy))
.attr("width", self.lineWidth)
.attr("height", height)
.style("stroke", function(d) { return d.color; })
.style('stroke-opacity', function(d) { return d.opacity; })
group.append("circle")
.attr("cx", self.xWorldToGraph(xx))
.attr("cy", self.yWorldToGraph(yy))
.attr("r", 50)
.style("stroke", function(d) { return d.color; })
.style('stroke-opacity', function(d) { return d.opacity; })
现在我想更新组颜色,这样圆形和矩形也会改变颜色。