如何从d3中的treemap节点获取背景属性?

时间:2016-06-21 14:05:35

标签: javascript d3.js

我的代码中绘制d3树形图节点的部分如下所示:

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)

现在,我如何获得该特定节点的颜色,以便我可以将其重用于不同的功能。

2 个答案:

答案 0 :(得分:1)

可以给每个节点一个这样的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;})
      ..

稍后使用下面的ID获取节点的颜色:

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

希望这有帮助!

答案 1 :(得分:1)

也许尝试使用.style属性。

实施例

var t = node.append("text")
                .style("color", function(d){ //your function definition for color here//});