2013-04-10 1 views
15

Существует множество примеров графиков с силовым ориентированием (то есть узлов и ссылок) и сбрасываемых деревьев (т.е. родительско-дочерние узлы), но я не могу найти пример комбинации эти - кроме некоторых кластерных сетей 1 уровня, таких как: http://static.cybercommons.org/js/d3/examples/force/force-cluster.html.Складной/иерархический и ориентированный по силе график в d3.js

enter image description here

То есть мне нужна полная иерархия узлов (с любым числом уровней) со связями между различными узлами по всей иерархии.

У кого-нибудь есть пример?

И если это так, мне в конечном итоге хотелось бы, чтобы иерархии были разборными, а любая из ссылок от детей «поднята» до родителя, когда она рухнула.

Приветствия, Tim

Это похоже на то, что я бы ожидать, что jsonData выглядеть ...

{ 
"nodes": [ 
    { 
     "name": "Parent 1", 
     "children": [ 
      { 
       "name": "Child 1", 
      }, 
    }, 
    { 
     "name": "Parent 2", 
     "children": [ 
      { 
       "name": "Child 2", 
      }, 
. 
. 
. 
"links": [ 
    { 
     source: "Child 1", 
     target: "Child 2" 
    }, 
. 
. 

ответ

3

Я также заинтересован в этом. Я нашел два примера, которые я хотел бы объединить.

http://bl.ocks.org/mbostock/1062288 http://graus.nu/d3/

+0

Да, точно ... один использует Д3 «ссылки» для подключения родителей и детей. У другого есть явные «ссылки» между узлами по иерархиям (независимо от того, являются ли они родителями или самими детьми). – DrTim

+0

Я не пытался слиться с двумя, не так ли? – Marinus

+0

нет. Существует несколько примеров одноуровневых сгруппированных графов в соответствии с приведенной выше ссылкой, а в образце «Иерархическое пограничное связывание» - http://mbostock.github.io/d3/talk/20111116/bundle.html - используется аналогичная структура данных (но можно связать только узлы листа). Все еще не повезло с решением ... – DrTim

7

я пытаюсь объединить оба примера здесь мой fiddle

// Toggle children on click. 
function click(d) { 
if (d.children) { 
    d._children = d.children; 
    d.children = null; 
} else { 
    d.children = d._children; 
    d._children = null; 
} 
update(); 
} 
Смежные вопросы