有向グラフの階層的な描画

LayeredGraphPlotは,グラフの頂点を「主」頂点を最上層とする階層的な一連の「層」で描こうとする.
LayeredGraphPlot[{vi1->vj1,vi2->vj2,}]
頂点 vik が頂点 vjk と接続しているグラフの階層的なプロットを生成する
LayeredGraphPlot[{{vi1->vj1,lbl1},}]
ラベル lblk をグラフ中の辺と関連付ける
LayeredGraphPlot[g,pos]
グラフ中の主頂点を位置 pos に置く
LayeredGraphPlot[m]
隣接行列 m で表されるグラフの階層的なプロットを生成する
階層的なグラフの描画
LayeredGraphPlotは,辺の方向が主に下向きになるようにグラフを描画する. LayeredGraphPlotの第2引数は根の位置を指定する.この引数に可能な値はRightLeftTopBottomである.
有向グラフをプロットする:
次も同じグラフのプロットだが,矢印が左から右へ向かっている:
浮動小数点の相違のため,LayeredGraphPlotはプラットフォームによって異なる出力を生成することがある.
LayeredGraphPlotのオプション
Graphicsのオプションに加え,LayeredGraphPlotでは以下のオプションが使える.
オプション名
デフォルト値
DataRangeAutomatic
生成する頂点座標の範囲
DirectedEdgesTrue
辺を有向の矢印として示すかどうか
EdgeLabelsAutomatic
辺に与えられたラベルを含めるかどうか
EdgeShapeFunctionAutomatic
辺の明示的なグラフィックスを与える関数
MultiedgeStyleAutomatic
頂点間の多重辺をどのように描くか
"PackingLayout"Automatic
要素のパッキングに使用するメソッド
PlotRangePaddingAutomatic
プロット周囲にどの程度の充填を行うか
PlotStyleAutomatic
オブジェクトを描画するスタイル
SelfLoopStyleAutomatic
頂点をそれ自身と結ぶ辺をどのように描くか
VertexCoordinatesAutomatic
明示的な頂点座標の規則
VertexLabelsAutomatic
頂点名をラベルとして示すかどうか
VertexShapeFunctionAutomatic
頂点の明示的なグラフィックスを与える関数
LayeredGraphPlotのオプション

DirectedEdges

オプションDirectedEdgesは,辺を矢印として描くかどうかを指定する.このオプションが取り得る値はTrueまたはFalseである.このオプションのデフォルト値はTrueである.
次は,辺が矢印ではなく線で示されているグラフである:

EdgeLabels

オプションEdgeLabelsは,辺に与えられたラベルを表示するかどうか,またどのように表示するかを指定する.このオプションが取り得る値はAllNoneまたはAutomaticである.このオプションのデフォルト値はAutomaticで,与えられた辺のラベルをグラフに表示する.
指定された辺のラベルを表示する:
Tooltip[vi->vj,lab]を使って辺のツールチップを指定する.カーソルを頂点3と頂点6の間の辺の上,または頂点3と5の間の辺の上に置くとツールチップが見られる:

EdgeShapeFunction

オプションEdgeShapeFunctionは,グラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomaticNone,あるいはグラフィックスプリミティブとグラフィックス指示子との適切な組合せを与える関数である.デフォルト設定のAutomaticでは,各辺が暗赤色の線で描画される.EdgeShapeFunction->Noneでは,辺は描画されない.
頂点だけを描画する:
EdgeShapeFunction->g のとき,各辺は関数 g で与えられるグラフィックスプリミティブとグラフィックス指示子で描画される.この関数は g[{ri,,rj},{vi,vj},lblij,]という形式で3つ以上の引数を取ることができ,rirj は辺の始点と終点の座標,vivj は最初の頂点と最後の頂点,lblij は辺に指定された任意のラベルあるいはNoneである.EdgeShapeFunction->g の明示的な設定値はEdgeLabelsDirectedEdgesの設定値に優先する.
この例では,グラフの座標系で辺が0.3後退した灰色の矢印でプロットされている:
この例では,辺は黒い矢印で,自己ループは赤い矢印で描かれる:

MultiedgeStyle

オプションMultiedgeStyleは,2つの頂点間の多重辺を描くかどうかを指定する.MultiedgeStyleが取り得る値はAutomatic(デフォルト),TrueFalse,正の実数である.デフォルト設定のMultiedgeStyle->Automaticでは,規則のリストで指定されたグラフに対しては多重辺が表示されるが,隣接行列により指定された場合は表示されない.MultiedgeStyle->δ では,多重辺はスケールされた距離 δ にまで広げられる.
デフォルトでは,グラフが規則のリストで指定されている場合には多重辺が示される:
隣接行列で指定されている場合には多重辺は示されない:
多重辺が指定された量だけ拡散される:

PackingLayout

オプション"PackingLayout"は非連結要素をパッキングするためのメソッドを指定する.このオプションに可能な値はAutomatic(デフォルト),"ClosestPacking""ClosestPackingCenter""Layered""LayeredLeft""LayeredTop""NestedGrid"である."PackingLayout"->"ClosestPacking"では,要素は左上からポリオミノ法[6]を使って可能な限り近付くようパックされる."PackingLayout"->"ClosestPackingCenter"では,要素は中央からパックされる."PackingLayout"->"Layered"では,要素は左上から層状にパックされる."PackingLayout"->"LayeredLeft"あるいは"PackingLayout"->"LayeredTop"では,要素はそれぞれ上・左から層状にパックされる."PackingLayout"->"NestedGrid"では,要素はネストされた格子に配列される.通常効率的なデフォルト設定は"PackingLayout"->"Layered"であり,パッキングは最大の境界ボックス部分の要素から始まる.
デフォルトメソッドによる非連結要素のパッキング:
"ClosestPackingCenter"メソッドを使った非連結要素のパッキング:

PlotRangePadding

PlotRangePaddingLayeredGraphPlotにより継承されるグラフィックス関数に共通のオプションである.

PlotStyle

PlotStyleLayeredGraphPlotにより継承されるグラフィックス関数に共通のオプションである.オプションPlotStyleはオブジェクトを描画するスタイルを指定する.
ここでは,辺が太めの矢印で描かれている.辺と頂点はどちらも赤でラベル付けされている:

SelfLoopStyle

オプションSelfLoopStyleは,自分自身とリンクしている頂点のループを描くかどうかを指定する.このオプションに可能な値はAutomatic(デフォルト)TrueFalse,正の実数である.SelfLoopStyle->Automaticでは,グラフが規則のリストで指定されている場合に自己ループが表示され,隣接行列で指定されている場合は表示されない.SelfLoopStyle->δ では,自己ループは直径 δ(辺の平均の長さに対して)で描画される.
デフォルトでは,グラフが規則のリストで指定されている場合には,自己ループが表示される:
グラフが隣接行列で指定されている場合には自己ループは表示されない:
辺の平均の長さの0.3倍の直径の自己ループが描画される:

VertexCoordinates

オプションVertexCoordinatesは頂点座標を指定する.取り得る値は,Noneか座標のリストである.
次は,既知の座標を使ってペテルセン(Petersen)グラフを描画する:
次は,デフォルトメソッドで描画する:

VertexLabels

オプションVertexLabelsは頂点名をラベルとして表示するかどうかを指定する.このオプションに可能な値はAllNoneAutomatic(デフォルト),Tooltipである.VertexLabels->Allではラベルが表示される.隣接行列で指定されたグラフでは,頂点ラベルは連続した整数n は行列の大きさ)を取る.規則のリストで指定されたグラフでは,ラベルは規則で使われた式である.VertexLabels->Noneでは各頂点は点として表示される.頂点 vk に対する別のツールチップを指定する場合は,規則のリストの任意の場所でTooltip[vk,vlbl]を使うとよい.
ラベルが隣接行列の指標として与えられているグラフを描画する:
規則のリストで指定されたラベルを使う:
頂点を点として描画し,頂点名をツールチップで表示する.頂点の上にカーソルを置くと,ラベルが表示される:

VertexShapeFunction

オプションVertexShapeFunctionはグラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomaticNone,あるいはグラフィックスプリミティブと指示子の適切な組合せを与える関数である.デフォルト設定のAutomaticでは,頂点は点として表示される.
デフォルトでは,頂点は点として描かれる:
頂点なしで同じグラフを描画する:
VertexShapeFunction->g では,各頂点が g[ri,vi,]で与えられるグラフィックスプリミティブで描画される.ri は頂点の座標で,vi は頂点のラベルである.VertexShapeFunction->g の明示的な設定値はVertexLabelsの設定値に優先する.
この例では,頂点が黄色の円板で表示されている:
例題ギャラリー

フローチャート

LayeredGraphPlotは,ビジネス,経済,技術的なプレゼンテーション等のためのフローチャートの可視化に役立つ.
フローチャートを表示する:
左から右へと流れるフローチャート:

食物連鎖

食物連鎖はLayeredGraphPlotを使って可視化することができる.
小さい食物連鎖を表示する:
別の食物連鎖:

Unixの歴史

LayeredGraphPlotは歴史的事象を可視化するのにも適している.
Unixの歴史である: