d3强制可折叠布局-所有节点都折叠的起始页

d3 force collapsible layout - start page with all nodes collapsed

本文关键字:节点 折叠 起始页 -所 可折叠 布局 d3      更新时间:2023-09-26

我只需要对此处可用的布局进行简单修改http://mbostock.github.io/d3/talk/20111116/force-collapsible.html

上述可视化从所有节点展开开始,因此用户可以可视化整个层次结构。唯一的问题是,如果图是稠密的,那么形成的毛球就没有意义了。

我有兴趣从根节点开始,并根据需要逐步扩展所有节点。这可行吗?需要多少代码更改?

我发现实现这一点的方法是在所有子节点上调用click函数。您可以通过在上面提供的示例中插入以下两行来实现这一点(将这两行插入d3.json调用的正下方,靠近在其末尾调用"update"的脚本的开头)

d3.json("flare.json", function(json) {
  root = json;
  root.fixed = true;
  root.x = w / 2;
  root.y = h / 2 - 80;
  update();
});
//new code
var collapseMe = flatten(root);
for(var j = 0; j< collapseMe.length; j++){click(collapseMe[j])};
       just do it like this 
        d3.json("json/results.json", function(json) {
               root = json;
               root.x0 = h / 2;
                root.y0 = 0;
                function toggleAll(d) {
                   if (d.children) {
                   d.children.forEach(toggleAll);
                  toggle(d);
                   }
               }
                 root.children.forEach(toggleAll);
                  toggle(root);
                update(root);
                 });