Javascript 在d3树中隐藏根节点
我用它作为数据流图的起点。不幸的是,我真的需要有分离树的能力(即两个没有连接节点的树)。 我决定通过使根节点及其分支不可见和不可链接来解决这个问题。(这样,树下的每个子树看起来都是一棵独立的树,但仍会保持正确的间距 我成功地隐藏了从根节点到其子节点的链接,方法是向Javascript 在d3树中隐藏根节点,javascript,css,d3.js,tree,nodes,Javascript,Css,D3.js,Tree,Nodes,我用它作为数据流图的起点。不幸的是,我真的需要有分离树的能力(即两个没有连接节点的树)。 我决定通过使根节点及其分支不可见和不可链接来解决这个问题。(这样,树下的每个子树看起来都是一棵独立的树,但仍会保持正确的间距 我成功地隐藏了从根节点到其子节点的链接,方法是向linkColor函数添加一个新的大小写,将颜色设置为白色,并将该颜色代码分配给根节点的子节点 我现在陷入困境的地方是隐藏根节点本身。我尝试将其大小设置为0,但这会将其和所有子节点、孙子节点等节点消失。而大小1仍然可见 我尝试过使用ja
linkColor
函数添加一个新的大小写,将颜色设置为白色,并将该颜色代码分配给根节点的子节点
我现在陷入困境的地方是隐藏根节点本身。我尝试将其大小设置为0,但这会将其和所有子节点、孙子节点等节点消失。而大小1仍然可见
我尝试过使用javascript路径而不是数据路径,尝试过添加样式属性、添加用css隐藏的类、跳过着色函数等等。但是javascript的主要问题是,我真的不知道如何隔离/找到根节点
我尝试过的事情:
d3.json("example.com/mylink.json", function(error, flare) {
edge_weight.domain([0,flare.size]);
root = flare;
root.x0 = height / 2;
root.y0 = 0;
root.attr("class", "root"); //I've tried this
root.style("fill", "#ffffff"); //I've tried this
root.circle.style("fill", "#ffffff"); //tried this
root.children.forEach(collapse);
update(root);
});
我尝试过影响节点属性本身和应用于节点的设置/样式,但同样,我不知道如何仅提取/标识根。
感谢您的帮助和想法!
root
是包含树数据的对象,而不是根节点
要隐藏根节点并使其不可访问,请使用深度(根节点具有depth=0
)
对于链接,使用与深度相同的逻辑:
.style("opacity", function(d, i) {
return !d.source.depth ? 0 : 1;
})
.style("pointer-events", function(d, i) {
return !d.source.depth ? "none" : "all";
});
由于您没有发布您的代码,以下是您与这些更改共享的bl.ock:
.style("opacity", function(d, i) {
return !d.source.depth ? 0 : 1;
})
.style("pointer-events", function(d, i) {
return !d.source.depth ? "none" : "all";
});