Main Content

treeplot

绘制树形图

说明

treeplot(p) 绘制一个或多个指定为父索引行向量的树。p(i) = j 表示节点 j 是节点 i 的父节点,p(i) = 0 表示节点 i 是根节点。

示例

treeplot(p,NodeSpec,EdgeSpec) 设置树形图中节点和边的线型、标记符号和颜色。使用 '' 省略 NodeSpecEdgeSpec 参量。

示例

示例

全部折叠

绘制一个包含 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.

绘制两个树。通过将节点 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

节点标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定标记和颜色。例如,如果指定标记并省略颜色,则绘图仅显示默认为红色的标记。

示例: 'ob' 表示蓝色圆形标记

标记描述
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'_'水平线条
'|'垂直线条
's'方形
'd'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'p'五角形
'h'六角形
颜色描述

y

黄色

m

品红色

c

青蓝色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

边样式、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(边样式、标记和颜色)。例如,如果忽略边样式,只指定标记,则绘图只显示标记,不显示线条。

示例: '--or' 是具有圆形标记的红色虚线边

边样式描述
-实线
--虚线
:点线
-.点划线
标记描述
'o'圆圈
'+'加号
'*'星号
'.'
'x'叉号
'_'水平线条
'|'垂直线条
's'方形
'd'菱形
'^'上三角
'v'下三角
'>'右三角
'<'左三角
'p'五角形
'h'六角形
颜色描述

y

黄色

m

品红色

c

青蓝色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

提示

  • 或者,使用 graphdigraph 对象来处理图和网络算法。您可以使用 plot 可视化网络。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |