D3.jsを使用して階層的な力の図を生成したいと思います。これは、グラフを子レベル(子間の関係が表示されている)に展開するノードをクリックすることでツリーのような構造をナビゲートできる力指向グラフです。ノードは、親または兄弟の2つの方法で相互に関連付けることができます。親の関係は、ノードがその親に「属している」ことを示します。
出発点として、フォースクラスターの例(https://github.com/mbostock/d3/blob/master/examples/force/force-cluster.html)を確認し、上記の関係を含めましたが、理解できません。ネットワーク全体ではなく、拡張されたクラスターのみをレンダリングする方法を説明します(下の画像を参照)。
JSON data:
{"nodes":
[
{"name":"Person 0","group":"Person 0"},
{"name":"Person 1","group":"Person 1"},
{"name":"Person 2","group":"Person 1"},
{"name":"Person 3","group":"Person 1"},
{"name":"Person 4","group":"Person 3"},
{"name":"Person 5","group":"Person 3"}
],
"links":
[
{"source":1,"target":0,"type":"sibling"},
{"source":2,"target":1,"type":"parent"},
{"source":3,"target":1,"type":"parent"},
{"source":3,"target":2,"type":"sibling"},
{"source":4,"target":3,"type":"parent"},
{"source":5,"target":3,"type":"parent"},
{"source":4,"target":5,"type":"sibling"}
]
}
上:力の図。赤いリンクは兄弟関係を示しています。
親の「type」を使用する代わりに、JSONで「children」を子として配置することもできます。
{
"nodes": [
{
"name": "Person 0",
},
{
"name": "Person 1",
"children": [
{
"name": "Person 2",
},
{
.
.
.
"links": [
{
"source": 1,
"target": 0
},
.
.
ただし、子ノード間の関係を追跡しながら、ツリー構造をどのように組み合わせるのですか?
想像上の木のような構造は次のようになります。
下のセクションは、ビジュアルの望ましいレイアウトを示しています(上の画像と同様の機能)。
進め方について何か提案はありますか?