クラスター
例 · クラスターレイアウトは、デンドログラムを生成します。これは、ツリーの葉ノードを同じ深さに配置するノードリンク図です。デンドログラムは通常、整然としたツリーよりもコンパクトではありませんが、階層的クラスタリングや系統樹図など、すべての葉が同じレベルにある必要がある場合に役立ちます。
cluster()
ソース · デフォルト設定で新しいクラスターレイアウトを作成します。
cluster(root)
ソース · 指定されたroot階層をレイアウトし、rootとその子孫に以下のプロパティを割り当てます。
- node.x - ノードのx座標
- node.y - ノードのy座標
座標xとyは、任意の座標系を表します。たとえば、xを角度、yを半径として、放射状レイアウトを生成できます。階層をクラスターレイアウトに渡す前に、root.sortを呼び出すことをお勧めします。
cluster.size(size)
ソース · sizeが指定されている場合、このクラスターレイアウトのサイズを指定された2つの数値の配列[width, height]に設定し、このクラスターレイアウトを返します。sizeが指定されていない場合は、現在のレイアウトサイズを返します。これはデフォルトで[1, 1]です。レイアウトサイズがnullの場合、ノードサイズが代わりに使用されることを示します。座標xとyは、任意の座標系を表します。たとえば、放射状レイアウトを生成するには、[360, radius]のサイズは、360°の幅とradiusの深さに対応します。
cluster.nodeSize(size)
ソース · sizeが指定されている場合、このクラスターレイアウトのノードサイズを指定された2つの数値の配列[width, height]に設定し、このクラスターレイアウトを返します。sizeが指定されていない場合は、現在のノードサイズを返します。これはデフォルトでnullです。ノードサイズがnullの場合、レイアウトサイズが代わりに使用されることを示します。ノードサイズが指定されている場合、ルートノードは常に⟨0, 0⟩に配置されます。
cluster.separation(separation)
ソース · separationが指定されている場合、分離アクセサーを指定された関数に設定し、このクラスターレイアウトを返します。separationが指定されていない場合は、現在の分離アクセサーを返します。これはデフォルトで次のようになります。
function separation(a, b) {
return a.parent == b.parent ? 1 : 2;
}
分離アクセサーは、隣接する葉を分離するために使用されます。分離関数には2つの葉aとbが渡され、必要な分離を返す必要があります。ノードは通常兄弟ですが、レイアウトがそのようなノードを隣接して配置することにした場合、ノードはより遠い関係になる可能性があります。