0

私はグラフを持っています。グラフにはノードがあります。ノードに接続された 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); })

それ、どうやったら出来るの?グラフ全体を再描画したくありません..

ありがとう!

PS関連の質問:特定のノードだけを選択してそれらだけを再描画する方法は?

4

1 に答える 1

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");
于 2013-01-17T05:30:21.413 に答える