树形图

TreePlot 以连续分层的树形或者一组树的布局形式绘制图中的各个顶点. 如果图 g 不是一个树,TreePlot 以该图的每个分量对应的生成树为基础进行布局,以绘制各个顶点.
TreePlot[{vi 1->vj 1,vi 2->vj 2,}]
生成图的树形图,其中顶点 vik 与顶点 vjk 相连接
TreePlot[{{vi 1->vj 1,lbl1},}]
把标签 lblk 与图中的边相联系
TreePlot[g,pos]
把图线中的树的根放置在位置 pos
TreePlot[g,pos,vk]
使用顶点 vk 作为树形图的根节点
TreePlot[m]
生成由邻接矩阵 m 表示的图的分层图
绘制树形图.
一个简单的图和它的树形图:
默认情况下,TreePlot 把每个树的根放置在上面. TreePlot[g,pos] 在位置 pos 放置根. 可能的位置是:TopBottomLeftRightCenter.
这里通过把根放置在左边,绘制树:
这里把根放置在中心:
TreePlot 的选项
除了 Graphics 的选项,LayeredGraphPlot 还接受下列选项.
选项名
默认值
DataRangeAutomatic
生成的顶点坐标的范围
DirectedEdgesFalse
是否把边显示为有向箭头
EdgeLabelsAutomatic
是否包含对边给出的标签
EdgeShapeFunctionAutomatic
对于边给出明确图形的函数
LayerSizeFunction1&
每个层所允许的高度
MultiedgeStyleAutomatic
如何在顶点之间绘制多重边
"PackingLayout"Automatic
用于排列分量的方法
PlotRangePaddingAutomatic
在图线周边应该填充的空白量
PlotStyleAutomatic
对象的绘制样式
SelfLoopStyleAutomatic
如何绘制连接顶点和自身的边
VertexCoordinatesAutomatic
明确顶点坐标的规则
VertexLabelsAutomatic
是否把顶点名称显示为标签
VertexShapeFunctionAutomatic
对顶点给出明确图形的函数
TreePlot 的选项.

DirectedEdges

选项 DirectedEdges 指明是否把边绘制成有向箭头. 该选项的可能值为 True 或者 False. 该选项的默认值是False.
在下面的图中,边用箭头表示,而不是用线表示:

EdgeLabels

选项 EdgeLabels 指明是否并且如何显示对边给出的标签. 该选项的可能值为 AllNone 或者 Automatic. 该选项的默认值为 Automatic,它在图上显示所提供的边标签.
这里显示指定的边标签:
这里把标签显示为工具提示条. 在光标放置在顶点4和顶点7之间的边上,以查看工具提示条:

EdgeShapeFunction

选项 EdgeShapeFunction 指定图的边的图形表示. 该选项的可能值为 AutomaticNone、或者是一个给出图形基元和指令的适当组合的函数. 使用 Automatic 的默认设置,对每条边使用深红色的线绘制. 使用EdgeShapeFunction->None,则不绘制边.
这里只绘制顶点:
使用 EdgeShapeFunction->g,每条边使用图形基元以及由可以采用三个或多个自变量的函数 g 给出的指令绘制,该函数形如 g[{ri,,rj},{vi,vj},lblij,],其中 ri,rj 是边的起点和终点的坐标,vi,vj 是起始和终止顶点,而 lblij 是对边指定的任意标签或者 None. EdgeShapeFunction->g 的明确设置重载 EdgeLabelsDirectedEdges 的设置.
这里使用灰色箭头绘制边,其中箭头终端与顶点相距 0.3 的距离(在图的坐标系统中):
这里分别使用黑色和红色箭头显示边和回路.

LayerSizeFunction

LayerSizeFunction 选项指定对于每层所允许的相对高度. 默认情况下,高度为 1. 可能值包含给出实机器精度数的函数.
这里定义并且画出树:
这里绘制相同的树,其中第一层的相对高度为 1,第二层为 2 而第三层为 3:

MultiedgeStyle

选项 MultiedgeStyle 指定是否在两个顶点之间绘制重边. MultiedgeStyle 的可能值为 Automatic (默认)、TrueFalse 或者一个正实数. 在默认设置 MultiedgeStyle->Automatic 下,对于由规则列表指定的图形显示重边,而对于由邻接矩阵指定的图形,则不显示重边. 使用 MultiedgeStyle->δ,重边以尺度距离 δ 的展开.
默认情况下,如果一个图由规则列表给出,则显示重边:
但是对于由邻接矩阵指定的图,则不显示重边:
这里使用指定的量展开重边:

PackingLayout

选项 "PackingLayout" 指定用于排列不连通的分量的方法. 该选项的可能值为 Automatic (默认), "ClosestPacking""ClosestPackingCenter""Layered""LayeredLeft""LayeredTop""NestedGrid". 使用 "PackingLayout"->"ClosestPacking",从左上角开始,使用位四角方法(polyomino method)排列各个分量使之尽可能彼此接近. 使用 "PackingLayout"->"ClosestPackingCenter",从中心开始排列分量. 使用 "PackingLayout"->"Layered",从左上角开始排列分量. 使用 "PackingLayout"->"LayeredLeft" 或者 "PackingLayout"->"LayeredTop",分别从上或者左分层排列分量. 使用 "PackingLayout"->"NestedGrid",分量在嵌套网格中排列. 典型的有效默认设置为 "PackingLayout"->"Layered",而排列从最大有界框区域开始.
这里显示使用默认方法排列不连通的分量:
这里显示使用 "ClosestPackingCenter" 方法,排列不连通的分量:

PlotRangePadding

PlotRangePadding 是由 TreePlot 继承的图形函数的通用选项.

PlotStyle

PlotStyle 是由 TreePlot 继承的图形函数的通用选项. 选项 PlotStyle 指明对象绘制所采用的样式.
使用更粗的线绘制边,使用红色绘制边和顶点标签:

SelfLoopStyle

选项 SelfLoopStyle 指明是否并且如何对连接自身的顶点绘制回路. 该选项的可能值为 Automatic(默认)、TrueFalse 或者一个正实数. 使用 SelfLoopStyle->Automatic,如果图由规则列表指定,则显示回路,但是如果图由邻接矩阵指定,则不显示回路. 使用 SelfLoopStyle->δ,回路使用直径 δ 绘制(相对于平均边长).
默认情况下,对由规则列表指定的图显示回路:
如果图由邻接矩阵指定,则不显示回路:
这里显示直径等于平均边长 0.3 倍的回路:

VertexCoordinates

选项 VertexCoordinates 指定顶点坐标. 可能值为 None 或者坐标列表. 由规则列表指定的坐标当前不被TreePlot 支持.
这里使用已知的坐标绘制 Petersen 图:
这里使用默认方法绘图:

VertexLabels

选项 VertexLabels 指定是否把顶点名称作为标签显示. 该选项的可能值为 AllNoneAutomatic (默认). VertexLabels->All 显示标签. 对于由邻接矩阵指定的图,顶点标签采用连续整数 ,其中 是矩阵大小. 对于由规则列表指定的图,标签为规则中使用的表达式. VertexLabels->None 把每个顶点显示为点. 用户也可以在规则列表的任意位置中使用 Tooltip[vk,vlbl],来指明顶点 vk 的其他可选工具条.
这里绘制图,其中标签以邻接矩阵的索引给出:
这里使用规则列表中指定的标签:

VertexShapeFunction

选项 VertexShapeFunction 指定图的边的图形表示. 该选项的可能值为 AutomaticNone、或者是一个给出图形基元和指令的适当组合的函数. 使用 Automatic 的默认设置,顶点显示为点.
默认情况下,顶点显示为点.
这里绘制相同的图,但是没有画出顶点:
使用 VertexShapeFunction->g,每个顶点使用由 g[ri,vi,] 给定的图形基元绘制,其中 ri 是顶点坐标,而 vi 是顶点标签. VertexShapeFunction->g 的明确设置重载 VertexLabels 的设置.
这里以黄色圆盘显示顶点:
示例

k 叉树

这里绘制具有四层结构的5叉树:
这里绘制同样的图,但是每个层 的高度与 成正比:
这里把每个层 的高度设置为与 成正比: