d3 force разборный макет - стартовая страница со всеми свернутыми узлами

Мне просто нужна простая модификация макета, доступная здесь http://mbostock.github.io/d3/talk/20111116/force-collapsible.html

Приведенная выше визуализация начинается со всех узлов, которые расширяются, и поэтому пользователь может визуализировать всю иерархию. Единственная проблема заключается в том, что если график плотный, а сформированный шарик волос не имеет смысла.

Мне было бы интересно начать только с корневого узла и постепенно расширять все узлы по мере необходимости. Это возможно? Какое изменение кода необходимо?

2 ответа

Я нашел способ, который работает для этого, это вызвать функцию 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);
                 });
Другие вопросы по тегам