グラフ・レイアウト・パッケージを使用する際には、
すぐに使用できるレイアウト・アルゴリズムの中から、ユーザー固有の要件に合う
レイアウト・アルゴリズムを決定する必要があります。
レイアウト・アルゴリズムの中には、さまざまなグラフを扱えるものがあります。
また、特定のクラスのグラフ用に設計されており、それらのクラスに属していないグラフでは
良い結果が得られなかったり、拒否されたりするものもあります。
例えば、ツリー・レイアウト・アルゴリズムは、ツリー・グラフ用に設計されており、環状グラフ用ではありません。そのため、
適切なレイアウト・アルゴリズムを使用してグラフをレイアウトすることが重要です。
以下の表は、どのレイアウト・アルゴリズムが特定のタイプのグラフに
最も適しているかを判断する際に役立ちます。
- 表の上部の列には、さまざまなタイプのグラフの種別が示されています。
- レイアウト・アルゴリズムは、表の最初の列に示されています。
- レイアウト・アルゴリズムが所定のタイプのグラフに適用できる 場合には、表のセルに図が示されています。
レイアウトしたいグラフの一般的な特性を識別することにより、
レイアウト・アルゴリズムがその特定のタイプのグラフに適しているかどうか
を表から判断することができます。
例えば、グラフの構造がツリーであることがわかっている場合は、
「ドメインに依存しないグラフ」見出しの列を見ると、どのレイアウト・アルゴリズムが
適切であるかがわかります。Force-directedレイアウト、ツリー・レイアウト、
および階層型レイアウトのいずれも使用できることがわかります。
その中からどのレイアウトを選択するかは、表のセルに示されている図を見て判断します。
レイアウト・アルゴリズムと一般的なグラフ・タイプ
レイアウト
|
ドメインに依存しないグラフ | |||
---|---|---|---|---|
ツリー |
環状グラフ |
任意のグラフ |
||
力指向レイアウト |
![]() |
![]() 過剰に相互接続されたグラフ (多数のリンク) にならないようにする |
![]() |
|
ツリー・レイアウト |
![]() ![]() |
![]() |
||
階層型レイアウト |
![]() |
![]() |
![]() |
|
短リンク・レイアウト |
![]() |
|||
長リンク・レイアウト |
![]() |
|||
グリッド・レイアウト |
![]() アルゴリズムは、ノード間のリンクを考慮しません。 |
通信指向の表記
レイアウト
|
通信指向の表記 |
---|---|
環状レイアウト |
![]() 相互接続されたリング型およびスター型トポロジーの場合。 |