如何从d3js中折叠的所有节点开始?

时间:2012-07-25 10:24:38

标签: javascript d3.js tree

从这个示例开始http://bl.ocks.org/1062288我希望有一个树,所有节点都已折叠,因此初始图应该只包含一个节点(根)。

3 个答案:

答案 0 :(得分:10)

选项1:修改JSON

修改JSON文件readme.json,使用_children代替children

选项2:编辑Javascript

编辑javascript以切换每个节点的_childrenchildren属性。这可以这样做

var nodes = flatten(root);
nodes.forEach(function(d) {
  d._children = d.children;
  d.children = null;
});

这是第二个选项的JSFiddle

答案 1 :(得分:2)

var allnode =  flatten(root);
for (var i=0;i<allnode.length;i++){click(allnode[i])}

对于那些仍在寻找它的人来说,这里有2行代码。紧凑且易于理解。

答案 2 :(得分:1)

将此放在未来的读者身上:

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);
});

http://jsfiddle.net/chrisloughnane/vV3Sc/

相关问题