我有一个SVG图表,其中包含一组从对象数组中绘制的圆圈 d :
svg.selectAll(".circ").data(d)
.enter().append("circle")
.attr("cy", function (d) {
return d.y
})
.attr("cx", function (d) {
return d.x
})
.attr("r", elemSize / 2)
.style("fill", function (d) {
return d.color
}).attr("class", function (d, i) {
return "containerCell circ";
})
我还有一个名为 状态 的数组,其中包含新的填充颜色,其大小/索引与初始 d <相同/强>
我可以使用d3js中的哪个表达式来检查已经绘制的元素并从 状态 中存储的填充颜色更新它们的填充颜色?也许我需要对已有的对象使用一些迭代方法?
答案 0 :(得分:0)
找到自己的答案。
// select all circles of interest
var select = svg.selectAll(".circ");
if (!select.empty()) { // if selection got something
select.each(function (d, i) {
// d is data, i is index and we can modify elements of SVG as follows:
d3.select(this).style("fill", statusColor(states[i]));
});
}