How can I start with all the nodes collapsed in d3js?

后端 未结 3 1106
伪装坚强ぢ
伪装坚强ぢ 2020-12-03 15:54

Starting from this example http://bl.ocks.org/1062288 I would like to have a tree with all the nodes collapsed, so the initial graph should contain only one node (the root).

相关标签:
3条回答
  • 2020-12-03 16:09
    var allnode =  flatten(root);
    for (var i=0;i<allnode.length;i++){click(allnode[i])}
    

    for those still looking for it, here is 2 lines of code. compact and easy to understand.

    0 讨论(0)
  • 2020-12-03 16:14

    Put this here for future readers:

    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/

    0 讨论(0)
  • 2020-12-03 16:25

    Option 1: Modify the JSON

    Modify the JSON file, readme.json, to use _children instead of children.

    Option 2: Edit the Javascript

    Edit the javascript to switch the _children and children attributes for every node. This could be done like so

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

    Here is a JSFiddle for the second option.

    0 讨论(0)
提交回复
热议问题