树形图
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]:= |
| In[2]:= |
| Out[2]= | ![]() |
默认情况下,TreePlot 把每个树的根放置在上面. TreePlot[g, pos] 在位置 pos 放置根. 可能的位置是:Top、 Bottom、Left、Right 和 Center.
| In[3]:= |
| Out[3]= | ![]() |
| In[4]:= |
| Out[4]= | ![]() |
TreePlot 的选项
除了 Graphics 的选项,LayeredGraphPlot 还接受下列选项.
选项名 | 默认值 | |
| DataRange | Automatic | 生成的顶点坐标的范围 |
| DirectedEdges | False | 是否把边显示为有向箭头 |
| EdgeLabeling | True | 是否包含对边给出的标签 |
| EdgeRenderingFunction | Automatic | 对于边给出明确图形的函数 |
| LayerSizeFunction | 1& | 每个层所允许的高度 |
| MultiedgeStyle | Automatic | 如何在顶点之间绘制多重边 |
| PackingMethod | Automatic | 用于排列分量的方法 |
| PlotRangePadding | Automatic | 在图线周边应该填充的空白量 |
| PlotStyle | Automatic | 对象的绘制样式 |
| SelfLoopStyle | Automatic | 如何绘制连接顶点和自身的边 |
| VertexCoordinateRules | Automatic | 明确顶点坐标的规则 |
| VertexLabeling | Automatic | 是否把顶点名称显示为标签 |
| VertexRenderingFunction | Automatic | 对顶点给出明确图形的函数 |
TreePlot 的选项.
DirectedEdges
选项 DirectedEdges 指明是否把边绘制成有向箭头. 该选项的可能值为 True 或者 False. 该选项的默认值是False.
| In[5]:= |
| Out[5]= | ![]() |
EdgeLabeling
选项 EdgeLabeling 指明是否并且如何显示对边给出的标签. 该选项的可能值为 True、False 或者 Automatic. 该选项的默认值为 True,它在图上显示所提供的边标签. 使用 EdgeLabeling->Automatic 设置,标签以工具提示条的形式显示.
| In[6]:= |
| Out[6]= | ![]() |
| In[7]:= |
| Out[7]= | ![]() |
| In[8]:= |
| Out[8]= | ![]() |
EdgeRenderingFunction
选项 EdgeRenderingFunction 指定图的边的图形表示. 该选项的可能值为 Automatic、None、或者是一个给出图形基元和指令的适当组合的函数. 使用 Automatic 的默认设置,对每条边使用深红色的线绘制. 使用EdgeRenderingFunction->None,则不绘制边.
| In[9]:= |
| Out[9]= | ![]() |
使用 EdgeRenderingFunction->g,每条边使用图形基元以及由可以采用三个或多个自变量的函数 g 给出的指令绘制,该函数形如
,其中
是边的起点和终点的坐标,
是起始和终止顶点,而
是对边指定的任意标签或者 None. EdgeRenderingFunction->g 的明确设置重载EdgeLabeling 和 DirectedEdges 的设置.
| In[10]:= |
| Out[10]= | ![]() |
| In[11]:= |
| In[12]:= |
| Out[12]= | ![]() |
LayerSizeFunction
LayerSizeFunction 选项指定对于每层所允许的相对高度. 默认情况下,高度为 1. 可能值包含给出实机器精度数的函数.
| In[13]:= |
| In[14]:= |
| Out[14]= | ![]() |
| In[15]:= |
| Out[15]= | ![]() |
MultiedgeStyle
选项 MultiedgeStyle 指定是否在两个顶点之间绘制重边. MultiedgeStyle 的可能值为 Automatic (默认)、True、False 或者一个正实数. 在默认设置 MultiedgeStyle->Automatic 下,对于由规则列表指定的图形显示重边,而对于由邻接矩阵指定的图形,则不显示重边. 使用 MultiedgeStyle->
,重边以尺度距离
的展开.
| In[16]:= |
| Out[16]= | ![]() |
| In[17]:= |
| Out[17]= | ![]() |
| In[18]:= |
| Out[18]= | ![]() |
PackingMethod
选项 PackingMethod 指定用于排列不连通的分量的方法. 该选项的可能值为 Automatic (默认),
、
、
、
、
和
. 使用 PackingMethod->"ClosestPacking",从左上角开始,使用位四角方法(polyomino method)排列各个分量使之尽可能彼此接近. 使用 PackingMethod->"ClosestPackingCenter",从中心开始排列分量. 使用 PackingMethod->"Layered",从左上角开始排列分量. 使用PackingMethod->"LayeredLeft" 或者 PackingMethod->"LayeredTop",分别从上或者左分层排列分量. 使用 PackingMethod->"NestedGrid",分量在嵌套网格中排列. 典型的有效默认设置为PackingMethod->"Layered",而排列从最大有界框区域开始.
| In[19]:= |
| Out[19]= | ![]() |
| In[20]:= |
| Out[20]= | ![]() |
PlotRangePadding
PlotRangePadding 是由 TreePlot 继承的图形函数的通用选项.
PlotStyle
PlotStyle 是由 TreePlot 继承的图形函数的通用选项. 选项 PlotStyle 指明对象绘制所采用的样式.
| In[21]:= |
| Out[21]= | ![]() |
SelfLoopStyle
选项 SelfLoopStyle 指明是否并且如何对连接自身的顶点绘制回路. 该选项的可能值为 Automatic(默认)、True、False 或者一个正实数. 使用 SelfLoopStyle->Automatic,如果图由规则列表指定,则显示回路,但是如果图由邻接矩阵指定,则不显示回路. 使用 SelfLoopStyle->
,回路使用直径
绘制(相对于平均边长).
| In[22]:= |
| Out[22]= | ![]() |
| In[23]:= |
| Out[23]= | ![]() |
| In[24]:= |
| Out[24]= | ![]() |
VertexCoordinateRules
选项 VertexCoordinateRules 指定顶点坐标. 可能值为 None 或者坐标列表. 由规则列表指定的坐标当前不被TreePlot 支持.
| In[25]:= |
| Out[25]= | ![]() |
| In[26]:= |
| Out[26]= | ![]() |
VertexLabeling
选项 VertexLabeling 指定是否把顶点名称作为标签显示. 该选项的可能值为 True、False、Automatic (默认)以及Tooltip. VertexLabeling->True 显示标签. 对于由邻接矩阵指定的图,顶点标签采用连续整数
,其中
是矩阵大小. 对于由规则列表指定的图,标签为规则中使用的表达式. VertexLabeling->False 把每个顶点显示为点. VertexLabeling->Tooltip 把每个顶点显示为点,但是在工具提示条中给出它的名称. VertexLabeling->Automatic 把每个顶点显示为点,如果顶点数不大的话,在工具提示条中给出它的名称. 用户也可以在规则列表的任意位置中使用 Tooltip[vk, vlbl],来指明顶点
的其他可选工具条.
| In[27]:= |
| Out[27]= | ![]() |
| In[28]:= |
| Out[28]= | ![]() |
| In[29]:= |
| Out[29]= | ![]() |
VertexRenderingFunction
选项 VertexRenderingFunction 指定图的边的图形表示. 该选项的可能值为 Automatic、None、或者是一个给出图形基元和指令的适当组合的函数. 使用 Automatic 的默认设置,顶点显示为点,而它们的名称在工具提示条中给出.
| In[30]:= |
| In[31]:= |
| Out[31]= | ![]() |
| In[32]:= |
| Out[32]= | ![]() |
使用 VertexRenderingFunction->g,每个顶点使用由
给定的图形基元绘制,其中
是顶点坐标,而
是顶点标签. VertexRenderingFunction->g 的明确设置重载 VertexLabeling 的设置.
| In[33]:= |
| Out[33]= | ![]() |
示例
k 叉树
| In[34]:= |
| In[35]:= |
| Out[35]= | ![]() |
| In[36]:= |
| Out[36]= | ![]() |
| In[37]:= |
| Out[37]= | ![]() |








































