2016-06-21 27 views
2

D3のツリーマップノードを描く私のコードの一部を以下に示す:d3のtreemapのノードから背景属性を取得する方法は?

var node = svg.datum(data).selectAll(".tree_rect") 
     .data(treemap.nodes) 
    .enter().append("rect") 
     .attr("class", "tree_rect") 
     .call(position) 
     .style("background", function(d) { return d.children ? null:color_scale(d.Percentage, d['Planned Date'], d['Actual Date']); }) 
     .on("mousemove", mousemove) 
     .on("mouseout", mouseout) 

、私は別の機能のためにそれを再利用することができるように、その特定のノードの色を、得ることができる方法。後に以下のようなそのIDのものを使用して取得するノードの色に

var node = svg.datum(data).selectAll(".tree_rect") 
     .data(treemap.nodes) 
    .enter().append("rect") 
     .attr("class", "tree_rect") 
     .attr("id", function(d) {/*SOME ID FOR THE NODE*/ return d.id;}) 
     .. 

答えて

1

は、各ノードにこのようなIDの何かを与えることによるものであってもよい

var color = d3.select("#" ID) 
       .style("background") 

は、この情報がお役に立てば幸い!

+0

ソリューションのおかげで...しかし、私の問題を解決することはできませんIDが与えて...私は、各ノードを着色するための関数を指定しています。だから私が色を得ることができる場合は、それに応じてテキストの色を変更することができます。 @Cyril –

+0

あなた自身の問題を解決するはずです。 – Cyril

+0

多分....私はそれを試してみましょう... –

1

.style属性を使用してみてください。

var t = node.append("text") 
       .style("color", function(d){ //your function definition for color here//}); 
関連する問題