如何重新绘制我的节点? D3.js

时间:2013-01-17 05:21:08

标签: d3.js

我有图表。该图具有节点。有svg圈子连接到节点:

node.append("circle")
            .attr("class", "node")
            .attr("cx", function (d) { return 0; })
            .attr("cy", function (d) { return 0; })
            .attr("r", function (d) { return getNodeSize(d); })
            .style("fill", function (d) { return getNodeColor(d); })
            .style("stroke", function (d) { return getNodeStrokeColor(d); })
            .style("stroke-width", function (d) { return getNodeStrokeWidth(d); });

在某些时刻,我需要用不同的颜色重新绘制它们:

.style("fill", function (d) { return getNodeColor(d); })

我该怎么做?我不想重绘整个图表..

谢谢!

P.S。相关问题:如何只选择某些节点并重新绘制它们?

1 个答案:

答案 0 :(得分:0)

您最好为“圈子”提供一个全面的ID,您可以随时选择它来操作它。
例如:

node.append("circle")
        .attr("id", "circle-1")
        .attr("class", "node")
        .attr("cx", function (d) { return 0; })
        .attr("cy", function (d) { return 0; })
        ...

并通过以下代码选择它:

var circles = d3.select("#circle-1");

获得圈子后,您可以更改它们的样式。

还有另外一种方法,如果你有父节点的id或节点实例,你可以通过以下代码选择它的后代圆圈:

var circles = d3.select("node-id").select("circle");

var circles = node.select("circle");
相关问题