我的代码中绘制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)
现在,我如何获得该特定节点的颜色,以便我可以将其重用于不同的功能。
答案 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//});