Main Content

treeplot

ツリー図のプロット

説明

treeplot(p) は、親インデックスの行ベクトルとして指定された複数のツリーをプロットします。p(i) = j はノード j がノード i の親であること、p(i) = 0 はノード i がルート ノードであることを示しています。

treeplot(p,NodeSpec,EdgeSpec) は、ツリー図のライン スタイル、マーカー記号、およびノードとエッジの色を設定します。'' を使って、NodeSpec 引数または EdgeSpec 引数を省略できます。

すべて折りたたむ

7 つのノードをもつ二分木をプロットします。

親ノードのインデックスを各要素が含む行ベクトルを指定します。ルート ノードを 0 の値で指定します。たとえば、ノード 1 の親を 2、ノード 2 の親を 4、ノード 3 の親を 2 のように指定します。

p = [2 4 2 0 6 4 6]
p = 1×7

     2     4     2     0     6     4     6

treeplot を使用して二分木をプロットします。

treeplot(p)

Figure contains an axes object. The axes object with xlabel height = 2 contains 2 objects of type line. One or more of the lines displays its values using only markers

関数 treelayout を使用して、ツリー ノードの座標を生成します。説明テキストを追加して、ツリー図にノード インデックスを表示します。テキスト ラベルを、対応するノードの 0.02 単位だけ右に配置します。

[x,y] = treelayout(p);
text(x + 0.02,y,{1,2,3,4,5,6,7})

Figure contains an axes object. The axes object with xlabel height = 2 contains 9 objects of type line, text. One or more of the lines displays its values using only markers

別の方法でツリー構造を表現するには、digraph オブジェクトを使用します。そうすると plot で構造を可視化できます。

有向グラフのエッジ (s,t) をペアで指定する構文 digraph(s,t) を使用して、digraph オブジェクトを作成します。ツリーを plot で可視化します。ShowArrows オプションを false に設定し、親ノードから子ノードへの矢印を非表示にします。

g = digraph(p(p~=0),find(p));
plot(g,"ShowArrows",false)

Figure contains an axes object. The axes object contains an object of type graphplot.

2 つのツリーをプロットします。ノード 1 およびノード 7 は、その親インデックスを 0 に設定することにより、ルート ノードとして指定します。ノードには青い円を、エッジには十字のマーカーをもつ赤い点線を使用します。

p = [0 1 1 2 3 3 0 7 7];
treeplot(p,'bo','rx:')

Figure contains an axes object. The axes object with xlabel height = 2 contains 2 objects of type line. One or more of the lines displays its values using only markers

入力引数

すべて折りたたむ

親ノードのインデックス。length(p) 以下の正の整数から成る行ベクトルとして指定します。

  • ノード i がルート ノードの場合は、p(i)0 として指定します。

  • ノード i に親ノードがある場合は、p(i) をノード i の親として指定します。

データ型: double

ノードのマーカーおよび色。記号を含む文字ベクトルまたは string として指定します。記号の順番は任意です。マーカーと色の両方を指定する必要はありません。たとえば、マーカーを指定して色を省略した場合、プロットは既定の赤色だけでマーカーを表示します。

例: 'ob' は青色の円形マーカーを表します。

マーカー説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'_'水平線
'|'垂直線
's'正方形
'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'p'星形五角形
'h'星形六角形
説明

y

m

マゼンタ

c

シアン

r

g

b

w

k

エッジ スタイル、マーカーおよび色。記号を含む文字ベクトルまたは string として指定します。記号の順番は任意です。3 つの特性 (エッジ スタイル、マーカーおよび色) をすべて指定する必要はありません。たとえば、エッジ スタイルを省略してマーカーを指定する場合、プロットはラインなしでマーカーのみを表示します。

例: '--or' は丸いマーカーをもった赤い破線のエッジです。

エッジ スタイル説明
-実線
--破線
:点線
-.一点鎖線
マーカー説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'_'水平線
'|'垂直線
's'正方形
'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'p'星形五角形
'h'星形六角形
説明

y

m

マゼンタ

c

シアン

r

g

b

w

k

ヒント

  • あるいは、グラフとネットワークのアルゴリズムを扱うには、graph オブジェクトと digraph オブジェクトを使用します。plot を使用してネットワークを可視化できます。

バージョン履歴

R2006a より前に導入