【发布时间】:2014-10-03 21:52:43
【问题描述】:
我正在尝试选择 my tree 的一个分支并为每个(父级和两个子级)分配一个唯一的颜色。在下面的示例图片中,父节点在右侧,叶节点在左侧。
我的分层数据是三层深度(名称:“Specialty”>>名称:“Location”>>包含“Provider”,“Location”,“Specialty”的LeafNode)。我想我需要在绘制路径时检查每个 LeafNode 对象-
d.source.children.children.children.Specialty == d.source.children.name
但不能把它放在一起让它工作。当我绘制路径时,如何为每个分支分配唯一的颜色?
var link = canvas.selectAll(".link")
.data(links)
.enter().append("path")
.attr("d", diagonal)
.attr("stroke-width", 1)
.attr("fill", "none")
.attr("stroke", function(d){
return color(d.target.name == d.target.name ? d : "#111" ); //<< huh?
})
【问题讨论】:
-
在您的 json 生成函数中添加一个类别变量以及名称变量。完成后,只需将一些颜色映射到笔画即可。因此,您必须设置一个名为
colours的色标,然后在链接生成器中添加类似的内容;attr.("stroke", function(d,i) { return colours(d.source.category); })
标签: d3.js colors tree unique edges