MATHEMATICAチュートリアル

木の描画

TreePlotは,グラフの頂点を連続した層の木,あるいは一群の木として並べる.グラフ g が木ではない場合,TreePlotはその頂点をグラフの各要素の全域木をもとに並べる.

TreePlot[{vi1->vj1,vi2->vj2,...}]頂点 が頂点 と結ばれているグラフの木のプロットを生成する
TreePlot[{{vi1->vj1,lbl1},...}]ラベル をグラフの辺と関連付ける
TreePlot[g,pos]木の根をプロット中の位置 pos に置く
TreePlot[g,pos,vk]頂点 を木のプロットのルートノードとして使う
TreePlot[m]隣接行列 m で表されるグラフの層になったプロットを生成する

木の描画

簡単なグラフと木のプロットを描画する.
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

デフォルトで,TreePlotは各木の根を一番上に置く.TreePlot[g, pos]は,根を位置 pos に置く.可能な値はTopBottomLeftRightCenterである.

根が左側に置いて木をプロットする.
In[3]:=
Click for copyable input
Out[3]=
次は,根を中央に置く.
In[4]:=
Click for copyable input
Out[4]=

TreePlotのオプション

Graphicsのオプションに加え,LayeredGraphPlotでは次のオプションが使える.

オプション名
デフォルト値
DataRangeAutomatic生成する頂点座標の範囲
DirectedEdgesFalse辺を有向の矢印として描くかどうか
EdgeLabelingTrue辺に与えられたラベルを含めるかどうか
EdgeRenderingFunctionAutomatic辺の明示的なグラフィックスを与える関数
LayerSizeFunction1&各層に許容する高さ
MultiedgeStyleAutomatic頂点間の多重辺をどのように描くか
PackingMethodAutomatic要素のパッキングに使用するメソッド
PlotRangePaddingAutomaticプロット周囲にどの程度の充填を行うか
PlotStyleAutomaticオブジェクトを描画するスタイル
SelfLoopStyleAutomatic頂点をそれ自身と繋ぐ辺をどのように描くか
VertexCoordinateRulesAutomatic明示的な頂点座標の規則
VertexLabelingAutomatic頂点名をラベルとして示すかどうか
VertexRenderingFunctionAutomatic頂点の明示的なグラフィックスを与える関数

TreePlotのオプション

DirectedEdges

オプションDirectedEdgesは,辺を有向矢印として描くかどうかを指定する.このオプションが取り得る値はTrueまたはFalseである.このオプションのデフォルト値はFalseである.

これは,辺が線ではなく矢印で表されているグラフである.
In[5]:=
Click for copyable input
Out[5]=

EdgeLabeling

オプションEdgeLabelingは,辺に与えられたラベルを表示するかどうか,またどのように表示するかを指定する.このオプションが取り得る値はTrueFalseまたはAutomaticである.このオプションのデフォルト値はTrueで,グラフの辺のラベルを表示する.EdgeLabeling->Automaticではラベルはツールチップとして表示される.

指定された辺のラベルを表示する.
In[6]:=
Click for copyable input
Out[6]=
ラベルはツールチップとして示される.カーソルを頂点4と頂点7の間の辺の上に置くと,ツールチップが見られる.
In[7]:=
Click for copyable input
Out[7]=
これは,ラベルをツールチップとして表示する.カーソルを頂点4と頂点7の間の辺の上に置くとツールチップが見られる.
In[8]:=
Click for copyable input
Out[8]=

EdgeRenderingFunction

オプションEdgeRenderingFunctionは,グラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomaticNone,あるいはグラフィックスプリミティブとグラフィックス指示子との適切な組合せを与える関数である.デフォルト設定のAutomaticでは,各辺が暗赤色の線で描画される.EdgeRenderingFunction->Noneでは,辺は描画されない.

頂点だけを描画する.
In[9]:=
Click for copyable input
Out[9]=

EdgeRenderingFunction->g のとき,各辺は関数 g で与えられるグラフィックスプリミティブとグラフィックス指示子で描画される.この関数は という形式で3つ以上の引数を取ることができ, は辺の始点と終点の座標, は最初の頂点と最後の頂点, は辺に指定された任意のラベルあるいはNoneである.EdgeRenderingFunction->g の明示的な設定値はEdgeLabelingDirectedEdgesの設定値に優先する.

この例では,辺が0.3後退した灰色の矢印でプロットされている.
In[10]:=
Click for copyable input
Out[10]=
この例では,辺は黒い矢印で,自己ループは赤い矢印で描かれている.矢印の50%のところにラベルを加えるのにグラフユーティリティパッケージLineScaledCoordinate関数が使われている.
In[11]:=
Click for copyable input
In[12]:=
Click for copyable input
Out[12]=

LayerSizeFunction

LayerSizeFunctionオプションは,各層に許容する相対的な高さを指定する.デフォルトの高さは1である.使用可能な値は機械実数を与える関数である.

これは木のプロットを与える.
In[13]:=
Click for copyable input
In[14]:=
Click for copyable input
Out[14]=
これも上記と同じ木のプロットであるが,最初の層の相対的な高さが1,2番目の層が2,3番目の層が3になっている.
In[15]:=
Click for copyable input
Out[15]=

MultiedgeStyle

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

デフォルトでは,グラフが規則のリストで指定されている場合には多重辺が示される.
In[16]:=
Click for copyable input
Out[16]=
隣接行列で指定されている場合には多重辺は示されない.
In[17]:=
Click for copyable input
Out[17]=
多重辺が指定された量だけ拡散される.
In[18]:=
Click for copyable input
Out[18]=

PackingMethod

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

デフォルトメソッドによる非連結要素のパッキング.
In[19]:=
Click for copyable input
Out[19]=
メソッドを使った非連結要素のパッキング.
In[20]:=
Click for copyable input
Out[20]=

PlotRangePadding

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

PlotStyle

PlotStyleTreePlotにより継承されるグラフィックス関数に共通のオプションである.オプションPlotStyleはオブジェクトを描画するスタイルを指定する.

ここでは,辺が太めの矢印で描かれている.辺と頂点はどちらも赤でラベル付けされている.
In[21]:=
Click for copyable input
Out[21]=

SelfLoopStyle

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

デフォルトでは,グラフが規則のリストで指定されている場合には,自己ループが表示される.
In[22]:=
Click for copyable input
Out[22]=
グラフが隣接行列で指定されている場合には自己ループは表示されない.
In[23]:=
Click for copyable input
Out[23]=
辺の平均の長さの0.3倍の直径の自己ループが描画される.
In[24]:=
Click for copyable input
Out[24]=

VertexCoordinateRules

オプションVertexCoordinateRulesは頂点座標を指定する.取り得る値は,Noneか座標のリストである.規則のリストで指定された座標は,現在のTreePlotではサポートされていない.

次は,既知の座標を使ってペテルセン(Petersen)グラフを描画する.
In[25]:=
Click for copyable input
Out[25]=
次は,デフォルトメソッドで描画する.
In[26]:=
Click for copyable input
Out[26]=

VertexLabeling

オプションVertexLabelingは頂点名をラベルとして表示するかどうかを指定する.このオプションに可能な値はTrueFalseAutomatic(デフォルト),Tooltipである.VertexLabeling->Trueではラベルが表示される.隣接行列で指定されたグラフでは,頂点ラベルは連続した整数 は行列の大きさ)を取る.規則のリストで指定されたグラフでは,ラベルは規則で使われた式である.VertexLabeling->Falseでは各頂点は点として表示される.VertexLabeling->Tooltipでは,各頂点は点として表示されるが名前をツールチップで表示する.VertexLabeling->Automaticでは各頂点は点として表示され,頂点の数が多過ぎなければ名前をツールチップで表示する.頂点 に対する別のツールチップを指定する場合は,規則のリストの任意の場所でTooltip[vk, vlbl]を使うとよい.

ラベルが隣接行列の指標として与えられているグラフを描画する.
In[27]:=
Click for copyable input
Out[27]=
規則のリストで指定されたラベルを使う.
In[28]:=
Click for copyable input
Out[28]=
頂点を点として描画し,頂点名をツールチップで表示する.頂点の上にカーソルを置くと,ラベルが表示される.
In[29]:=
Click for copyable input
Out[29]=

VertexRenderingFunction

オプションVertexRenderingFunctionはグラフの辺の視覚的表現を指定する.このオプションに可能な値はAutomaticNone,あるいはグラフィックスプリミティブと指示子の適切な組合せを与える関数である.デフォルト設定のAutomaticでは,頂点は点として表示され,その名前はツールチップで与えられる.

デフォルトでは,頂点は点として描かれ,小さいグラフのときはツールチップでラベルが付く.頂点にカーソルを置くとツールチップが見られる.
In[30]:=
Click for copyable input
In[31]:=
Click for copyable input
Out[31]=
頂点なしで同じグラフを描画する.
In[32]:=
Click for copyable input
Out[32]=

VertexRenderingFunction->g では,各頂点が で与えられるグラフィックスプリミティブで描画される. は頂点の座標で, は頂点のラベルである.VertexRenderingFunction->g の明示的な設定値はVertexLabelingの設定値に優先する.

この例では,頂点が黄色の円板で表示されている.
In[33]:=
Click for copyable input
Out[33]=

例題ギャラリー

k 分木

以下で k 分木を定義する.
In[34]:=
Click for copyable input
これは,4層の4分木をプロットする.
In[35]:=
Click for copyable input
Out[35]=
これも同じグラフのプロットだが,各層 の高さがに比例するようになっている.
In[36]:=
Click for copyable input
Out[36]=
次では,各層の高さ に比例するように設定されている.
In[37]:=
Click for copyable input
Out[37]=
New to Mathematica? Find your learning path »
Have a question? Ask support »