これは、いくつかの作業が必要ですが、基本的に私が提案するアイデアは、円を描画しない関係と呼ばれるノードの特殊な種類の力のレイアウトを行うことです。これは2つのサブジェクト間のバインドを表し、より多くのノードの親になることができます。
d3では、すべてのデータ構造を必要に応じて拡張できます。その後、データをバインドする作業が増えますが、すべてカスタマイズできます。ここでは、フォースレイアウトで使用するデータ構造のサンプルを示します。
{
"nodes": [
{
"type": "root",
"x": 300,
"y": 300,
"fixed": true
},
{
"type": "male",
"name": "grandpa"
},
{
"type": "female",
"name": "grandma"
},
{
"type": "relationship"
},
{
"type": "male",
"name": "dad"
},
{
"type": "female",
"name": "mum"
},
{
"type": "relationship"
},
{
"type": "male",
"name": "I"
}
],
"links": [
{
"source": 0,
"target": 2
},
{
"source": 1,
"target": 2
},
{
"source": 0,
"target": 3
},
{
"source": 3,
"target": 4
},
{
"source": 4,
"target": 6
},
{
"source": 5,
"target": 6
},
{
"source": 6,
"target": 7
}
]
}
私はd3の可能性について何かを明確にしました。
あなたは人を持っています。グラフのノード(ボックス)で表すことができます。 あなたは接続線を持っています。私は別の種類があると仮定しているので、それらを独自のクラスで追加することができます。実装するには、svg:path要素を使用する必要があります。私が見る唯一の障害は、あなた自身のレイアウトアルゴリズムを書く必要があることです。 – Dan
これには良い解決策が思いつきましたか?私は同じことをするために探しています。 – dkniffin
短い答え - いいえ! –