有向グラフの階層的な描画
LayeredGraphPlotは,グラフの頂点を「主」頂点を最上層とする階層的な一連の「層」で描こうとする.
階層的なグラフの描画
LayeredGraphPlotは,辺の方向が主に下向きになるようにグラフを描画する. LayeredGraphPlotの第2引数は根の位置を指定する.この引数に可能な値はRight,Left,Top,Bottomである.
| Out[1]= |  |
次も同じグラフのプロットだが,矢印が左から右へ向かっている.
| Out[2]= |  |
浮動小数点の相違のため,LayeredGraphPlotはプラットフォームによって異なる出力を生成することがある.
LayeredGraphPlotのオプション
Graphicsのオプションに加え,LayeredGraphPlotでは以下のオプションが使える.
LayeredGraphPlotのオプション
DirectedEdges
オプションDirectedEdgesは,辺を矢印として描くかどうかを指定する.このオプションが取り得る値はTrueまたはFalseである.このオプションのデフォルト値はTrueである.
次は,辺が矢印ではなく線で示されているグラフである.
| Out[3]= |  |
EdgeLabeling
オプションEdgeLabelingは,辺に与えられたラベルを表示するかどうか,またどのように表示するかを指定する.このオプションが取り得る値はTrue,FalseまたはAutomaticである.このオプションのデフォルト値はTrueで,グラフの辺のラベルを表示する.EdgeLabeling->Automaticではラベルはツールチップとして表示される.
| Out[4]= |  |
ラベルはツールチップとして示される.カーソルを頂点3と頂点6の間の辺の上に置くと,ツールチップが見られる.
| Out[5]= |  |
次は,
Tooltip[vi->vj, lab]を使って辺のツールチップを指定している.カーソルを頂点3と頂点6の間の辺の上,または頂点3と5の間の辺の上に置くとツールチップが見られる.
| Out[6]= |  |
EdgeRenderingFunction
オプションEdgeRenderingFunctionは,グラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomatic,None,あるいはグラフィックスプリミティブとグラフィックス指示子との適切な組合せを与える関数である.デフォルト設定のAutomaticでは,各辺が暗赤色の線で描画される.EdgeRenderingFunction->Noneでは,辺は描画されない.
| Out[7]= |  |
EdgeRenderingFunction->g のとき,各辺は関数 g で与えられるグラフィックスプリミティブとグラフィックス指示子で描画される.この関数は
という形式で3つ以上の引数を取ることができ,
と
は辺の始点と終点の座標,
と
は最初の頂点と最後の頂点,
は辺に指定された任意のラベルあるいはNoneである.EdgeRenderingFunction->g の明示的な設定値はEdgeLabelingとDirectedEdgesの設定値に優先する.
この例では,グラフの座標系で辺が0.3後退した灰色の矢印でプロットされている.
| Out[8]= |  |
| Out[10]= |  |
MultiedgeStyle
オプションMultiedgeStyleは,2つの頂点間の多重辺を描くかどうかを指定する.MultiedgeStyleが取り得る値はAutomatic(デフォルト),True,False,正の実数である.デフォルト設定のMultiedgeStyle->Automaticでは,規則のリストで指定されたグラフに対しては多重辺が表示されるが,隣接行列により指定された場合は表示されない.MultiedgeStyle->
では,多重辺はスケールされた距離
にまで広げられる.
デフォルトでは,グラフが規則のリストで指定されている場合には多重辺が示される.
| Out[11]= |  |
隣接行列で指定されている場合には多重辺は示されない.
| Out[12]= |  |
| Out[13]= |  |
PackingMethod
オプションPackingMethodは非連結要素をパッキングするためのメソッドを指定する.このオプションに可能な値はAutomatic(デフォルト),
,
,
,
,
,
である.PackingMethod->"ClosestPacking"では,要素は左上からポリオミノ法[6]を使って可能な限り近付くようパックされる.PackingMethod->"ClosestPackingCenter"では,要素は中央からパックされる.PackingMethod->"Layered"では,要素は左上から層状にパックされる.PackingMethod->"LayeredLeft"あるいはPackingMethod->"LayeredTop"では,要素はそれぞれ上・左から層状にパックされる.PackingMethod->"NestedGrid"では,要素はネストされた格子に配列される.通常効率的なデフォルト設定はPackingMethod->"Layered"であり,パッキングは最大の境界ボックス部分の要素から始まる.
| Out[14]= |  |

メソッドを使った非連結要素のパッキング.
| Out[15]= |  |
PlotRangePadding
PlotRangePaddingはLayeredGraphPlotにより継承されるグラフィックス関数に共通のオプションである.
PlotStyle
PlotStyleはLayeredGraphPlotにより継承されるグラフィックス関数に共通のオプションである.オプションPlotStyleはオブジェクトを描画するスタイルを指定する.
ここでは,辺が太めの矢印で描かれている.辺と頂点はどちらも赤でラベル付けされている.
| Out[16]= |  |
SelfLoopStyle
オプションSelfLoopStyleは,自分自身とリンクしている頂点のループを描くかどうかを指定する.このオプションに可能な値はAutomatic(デフォルト)True,False,正の実数である.SelfLoopStyle->Automaticでは,グラフが規則のリストで指定されている場合に自己ループが表示され,隣接行列で指定されている場合は表示されない.SelfLoopStyle->
では,自己ループは直径
(辺の平均の長さに対して)で描画される.
デフォルトでは,グラフが規則のリストで指定されている場合には,自己ループが表示される.
| Out[17]= |  |
グラフが隣接行列で指定されている場合には自己ループは表示されない.
| Out[18]= |  |
辺の平均の長さの0.3倍の直径の自己ループが描画される.
| Out[19]= |  |
VertexCoordinateRules
オプションVertexCoordinateRulesは頂点座標を指定する.取り得る値は,Noneか座標のリストである.規則のリストで指定された座標は,現在のLayeredGraphPlotではサポートされていない.
次は,既知の座標を使ってペテルセン(Petersen)グラフを描画する.
| Out[20]= |  |
| Out[21]= |  |
VertexLabeling
オプションVertexLabelingは頂点名をラベルとして表示するかどうかを指定する.このオプションに可能な値はTrue,False,Automatic(デフォルト),Tooltipである.VertexLabeling->Trueではラベルが表示される.隣接行列で指定されたグラフでは,頂点ラベルは連続した整数
(n は行列の大きさ)を取る.規則のリストで指定されたグラフでは,ラベルは規則で使われた式である.VertexLabeling->Falseでは各頂点は点として表示される.VertexLabeling->Tooltipでは,各頂点は点として表示されるが名前をツールチップで表示する.VertexLabeling->Automaticでは各頂点は点として表示され,頂点の数が多過ぎなければ名前をツールチップで表示する.頂点
に対する別のツールチップを指定する場合は,規則のリストの任意の場所でTooltip[vk, vlbl]を使うとよい.
ラベルが隣接行列の指標として与えられているグラフを描画する.
| Out[22]= |  |
| Out[23]= |  |
頂点を点として描画し,頂点名をツールチップで表示する.頂点の上にカーソルを置くと,ラベルが表示される.
| Out[24]= |  |
VertexRenderingFunction
オプションVertexRenderingFunctionはグラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomatic,None,あるいはグラフィックスプリミティブと指示子の適切な組合せを与える関数である.デフォルト設定のAutomaticでは,頂点は点として表示され,その名前はツールチップで与えられる.
デフォルトでは,頂点は点として描かれ,小さいグラフのときはツールチップでラベルが付く.頂点にカーソルを置くとツールチップが見られる.
| Out[23]= |  |
| Out[24]= |  |
VertexRenderingFunction->g では,各頂点が
で与えられるグラフィックスプリミティブで描画される.
は頂点の座標で,
は頂点のラベルである.VertexRenderingFunction->g の明示的な設定値はVertexLabelingの設定値に優先する.
| Out[27]= |  |
例題ギャラリー
フローチャート
LayeredGraphPlotは,ビジネス,経済,技術的なプレゼンテーション等のためのフローチャートの可視化に役立つ.
| Out[28]= |  |
| Out[29]= |  |
食物連鎖
食物連鎖はLayeredGraphPlotを使って可視化することができる.
| Out[30]= |  |
| Out[2]= |  |
Unixの歴史
LayeredGraphPlotは歴史的事象を可視化するのにも適している.
| Out[32]= |  |