javascript - D3.js 树 - 如果没有孩子,检查并设置填充圆节点白色?
问题描述
如何检查节点是否有孩子,如果没有孩子,将圆圈的填充设置为白色?
目前使用:
var colourScale = d3.scale.ordinal()
.domain(["MD", "Professional", "Leader", "Advocate", "Clinician"])
.range(["#6695c8", "#cd3838", "#d48440", "#a8ba5f", "#63b7c0"]);
nodeUpdate.select("circle")
.attr("r", 10)
.attr("fill-opacity","0.7")
.attr("stroke-opacity","1")
.style("fill", function(d) {
return colourScale(findParent(d));
})
.style("stroke", function(d) {
return colourScale(findParent(d));
});
解决方案
nodeUpdate.select("circle")
.attr("r", 10)
.attr("fill-opacity", "0.7")
.attr("stroke-opacity", "1")
.style("fill", function(d) {
console.log(d);
return (typeof d._children !== 'undefined') ? (colourScale(findParent(d))) : '#FFF';
})
.style("stroke", function(d) {
return colourScale(findParent(d));
});
编辑:这里的问题是您的第一个节点没有_children
属性,而是children
一个。因为点击的时候加了children(_children变空了,children取值,改了就ok了)
推荐阅读
- keras - 负维度大小由 1 减去 6 导致的 'conv1d_2/convolution/Conv2D' (op: 'Conv2D') 输入形状:[?,1,1,5], [1,6,5,5]
- haskell - Haskell / Conduit:逐行读取文件
- python - subprocess.check_output() 中的 stderr=subprocess.STDOUT 有什么用?
- r - 如何从成对相关data.frame中获取相关矩阵?
- python - 来自 Django 的开发服务器端口绑定错误的 ptvsd 远程调试
- r - 如何在 R Studio 中从数据表中绘制选定的行
- python - 使用 sshtunnel 模块的 SSH 隧道不允许空密码
- grails - 如何更改 grails 项目中的 URL?
- javascript - 试图避免在ajaxcall之后滚动条返回开始
- r - 优化例程在自动编码器包中的自动编码功能中给出错误