適切なレイアウト・アルゴリズムの決定

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

均等なツリーの例

均等な環状グラフの例
過剰に相互接続されたグラフ (多数のリンク) にならないようにする

均等なグラフの例
ツリー・レイアウト

直交リンクを使用したツリーの例
アスペクト比が 1.5 の放射レイアウト・モードのツリーの例
 

循環があるツリーの例
階層型レイアウト

階層ツリーの例
環状グラフの水平階層レイアウトの例

循環がある階層ツリーの例
短リンク・レイアウト
   

直交リンクの例
長リンク・レイアウト
   

長リンク・レイアウト
グリッド・レイアウト
   

グリッドの例
アルゴリズムは、ノード間のリンクを考慮しません。
通信指向の表記
レイアウト
通信指向の表記
環状レイアウト

リング型およびスター型のグラフの例
相互接続されたリング型およびスター型トポロジーの場合。