隐藏 D3 v4 树图中的根节点和边

Ron*_*n I 3 d3.js

对于下面的小提琴,我想隐藏根节点。感谢任何帮助,要查看代码,请查看小提琴。

我想我会做类似以下的事情,但我不确定如何/在哪里实现它:

if (d.depth > 0) {
 ...node is drawn
}
Run Code Online (Sandbox Code Playgroud)

下图: 在此输入图像描述

Ger*_*ado 5

不绘制它不是“以零不透明度绘制它”或“隐藏显示”。它实际上没有附加元素。

因此,最简单的选择是将其从数据数组中删除。只需过滤掉第一个节点:

nodes = nodes.filter(function(d){
    return d.depth != 0;
})
Run Code Online (Sandbox Code Playgroud)

由于0是虚假的,这与以下内容相同:

nodes = nodes.filter(function(d){
    return d.depth;
})
Run Code Online (Sandbox Code Playgroud)

并过滤掉其中的所有链接:

links = links.filter(function(d){
    return d.depth != 1;
})
Run Code Online (Sandbox Code Playgroud)

这是您更新的小提琴:https://jsfiddle.net/wa21csbc/

此外,由于不再绘制这些元素,您可以将数据可视化移动到左侧,从而占据空的 SVG 空间。该空间之所以存在,是因为我们在计算位置后过滤掉了第一个节点。 d3.tree()