javascript - How to show only specific node level in d3 tree layout -


i trying show specific level of children in d3 tree layout on load. far, nodes (children, grandchildren, great-grandchildren, etc) displayed, , makes page weird.

here's code:

jquery(document).ready(function () { //build tree function buildverticaltree(treedata, treecontainerdom) {     var margin = { top: 20, right: 120, bottom: 20, left: 120 };     var width = 960 - margin.right - margin.left;     var height = 800 - margin.top - margin.bottom;      var = 0, duration = 750;     var tree = d3.layout.tree().nodesize([70, 40]);         //.size([height, width]);     var diagonal = d3.svg.diagonal()         .projection(function (d) { return [d.x, d.y]; });     var svg = d3.select(treecontainerdom).append("svg")         .attr("width", 1000)         .attr("height", 1000)         .call(zm = d3.behavior.zoom().scaleextent([1,3]).on("zoom", redraw))       .append("g")         .attr("transform", "translate(" + 350 + "," + 20 + ")");      //necessary zoom knows zoom , unzoom     zm.translate([350, 20]);      root = treedata;      update(root);     function update(source) {         // compute new tree layout.         var nodes = tree.nodes(root).reverse(),             links = tree.links(nodes);         // normalize fixed-depth.         nodes.foreach(function (d) { d.y = d.depth * 100; });         // declare nodes…         var node = svg.selectall("g.node")             .data(nodes, function (d) { return d.id || (d.id = ++i); });         // enter nodes.         var nodeenter = node.enter().append("g")             .attr("class", "node")             .attr("transform", function (d) {                 return "translate(" + source.x0 + "," + source.y0 + ")";             }).on("click", nodeclick);         nodeenter.append("circle")          .attr("r", 10)             .attr("stroke", function (d) { return d.children || d._children ? "steelblue" : "#00c13f"; })             .style("fill", function (d) { return d.children || d._children ? "lightsteelblue" : "#fff"; });         //.attr("r", 10)         //.style("fill", "#fff");         nodeenter.append("text")             .attr("y", function (d) {                 return d.children || d._children ? -18 : 18;             })             .attr("dy", ".35em")             .attr("text-anchor", "middle")             .text(function (d) { return d.name; })             .style("fill-opacity", 1e-6);         // transition nodes new position.         //horizontal tree         var nodeupdate = node.transition()             .duration(duration)             .attr("transform", function (d) { return "translate(" + d.x + "," + d.y + ")"; });         nodeupdate.select("circle")             .attr("r", 10)             .style("fill", function (d) { return d._children ? "lightsteelblue" : "#fff"; });         nodeupdate.select("text")             .style("fill-opacity", 1);           // transition exiting nodes parent's new position.         var nodeexit = node.exit().transition()             .duration(duration)             .attr("transform", function (d) { return "translate(" + source.x + "," + source.y + ")"; })             .remove();         nodeexit.select("circle")             .attr("r", 1e-6);         nodeexit.select("text")             .style("fill-opacity", 1e-6);         // update links…         // declare links…         var link = svg.selectall("path.link")             .data(links, function (d) { return d.target.id; });         // enter links.         link.enter().insert("path", "g")             .attr("class", "link")              .attr("d", function (d) {                 var o = { x: source.x0, y: source.y0 };                 return diagonal({ source: o, target: o });             });         // transition links new position.         link.transition()             .duration(duration)         .attr("d", diagonal);           // transition exiting nodes parent's new position.         link.exit().transition()             .duration(duration)             .attr("d", function (d) {                 var o = { x: source.x, y: source.y };                 return diagonal({ source: o, target: o });             })             .remove();          // stash old positions transition.         nodes.foreach(function (d) {             d.x0 = d.x;             d.y0 = d.y;         });      }      // toggle children on click.     function nodeclick(d) {         if (d.children) {             d._children = d.children;             d.children = null;         } else {             d.children = d._children;             d._children = null;         }         update(d);     } }  var treedata = { "name": "ologbottsere eyinminsaren", "children": [   {       "name": "uwakun uwangue",       "children": [         {             "name": "diare",              "children": [                {                     "name": "okoroboyo",                     "children": [                         {                             "name": "emmanuel",                             "children": []                         },                         {                             "name": "ogbawa",                             "children": [                                 {                                     "name": "addin",                                     "children": []                                 }                             ]                         },                         {                             "name": "edema",                             "children": []                         },                         {                             "name": "diden",                             "children": []                         },                         {                             "name": "nebuliaghanje",                             "children": []                         },                         {                             "name": "egherun",                             "children": [                                 {                                     "name": "wilfred",                                     "children": [                                         {                                             "name": "andrew",                                             "children": []                                         },                                     ]                                 }                             ]                         },                         {                             "name": "itene",                             "children": [                                 {                                     "name": "augustus",                                     "children": [                                         {                                             "name": "omadeli",                                             "children": [                                                 {                                                     "name": "tosan",                                                     "children": []                                                 },                                                 {                                                     "name": "rhema",                                                     "children": []                                                 }                                             ]                                         },                                         {                                             "name": "urowoli",                                             "children": [                                                 {                                                     "name": "wuwuoritsela",                                                     "children": []                                                 }                                             ]                                         },                                         {                                             "name": "ofeoritse",                                             "children": []                                         },                                         {                                             "name": "abugewa",                                             "children": [                                                 {                                                     "name": "omayeli",                                                     "children": []                                                 },                                                 {                                                     "name": "emmanuel",                                                     "children": []                                                 },                                             ]                                         },                                         {                                             "name": "oritseweyinmi",                                             "children": []                                         }                                     ]                                 },                                 {                                     "name": "albert",                                     "children": []                                 },                                 {                                     "name": "rosaline",                                     "children": []                                 }                             ]                         },                         {                             "name": "tima",                             "children": []                         },                         {                             "name": "edun",                             "children": [                                 {                                     "name": "charles",                                     "children": [                                         {                                             "name": "henry",                                             "children": [                                                 {                                                     "name": "tshewo",                                                     "children": []                                                 },                                                 {                                                     "name": "enedokpe",                                                     "children": []                                                 },                                                 {                                                     "name": "oritshela",                                                     "children": [                                                         {                                                             "name": "azaria",                                                             "children": []                                                         }                                                     ]                                                 },                                                 {                                                     "name": "ayetu",                                                     "children": []                                                 },                                                 {                                                     "name": "oritsenemi",                                                     "children": []                                                 }                                             ]                                         }                                     ]                                 },                                 {                                     "name": "janet",                                     "children": []                                 },                                 {                                     "name": "godwin",                                     "children": []                                 },                                 {                                     "name": "alexander",                                     "children": []                                 }                             ]                         },                         {                             "name": "akpake",                             "children": []                         },                         {                             "name": "weleke",                             "children": [                                 {                                     "name": "alice",                                     "children": []                                 },                                 {                                     "name": "hannah",                                     "children": []                                 },                                 {                                     "name": "gladys",                                     "children": []                                 },                                 {                                     "name": "kwame",                                     "children": []                                 }                             ]                         },                         {                             "name": "mene",                             "children": [                                 {                                     "name": "ada",                                     "children": []                                 },                                 {                                     "name": "eric",                                     "children": []                                 }                             ]                         },                         {                             "name": "kudieyin",                             "children": [                                 {                                     "name": "jos",                                     "children": []                                 },                                 {                                     "name": "toye",                                     "children": []                                 },                                 {                                     "name": "rose",                                     "children": [                                         {                                             "name": "samuel",                                             "children": [                                                 {                                                     "name": "meyiwa",                                                     "children": []                                                 }                                             ]                                         }                                     ]                                 },                                 {                                     "name": "helen",                                     "children": []                                 },                                 {                                     "name": "monsignor",                                     "children": []                                 }                             ]                         },                         {                             "name": "ukegbuli",                             "children": []                         },                         {                             "name": "metserunekpe",                             "children": [                                 {                                     "name": "abijoke",                                     "children": []                                 },                                 {                                     "name": "dupe",                                     "children": []                                 }                             ]                         },                         {                             "name": "uyaulitsemi",                             "children": []                         },                         {                             "name": "pigin",                             "children": [                                 {                                     "name": "samuel",                                     "children": []                                 },                                 {                                     "name": "rev. felix",                                     "children": []                                 },                                 {                                     "name": "thompson",                                     "children": []                                 },                                 {                                     "name": "christiana",                                     "children": []                                 }                             ]                         },                         {                             "name": "urowoli",                             "children": []                         }                     ]                }             ]         }       ]   } ] }; buildverticaltree(treedata, "#genealogy-tree"); }); 

currently, shows nodes on load, want show 4 or 5 levels down. how can achieve this?

by collapse function:

function collapse(d) {      if (d.children) {          d._children = d.children;          d._children.foreach(collapse);          d.children = null;      }  }

so can invoke adding

root.children.foreach(collapse); 

just before main update(root) function.

look @ collapsible d3 treeview example: https://bl.ocks.org/mbostock/4339083


Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

transpose - Maple isnt executing function but prints function term -