有向图的分层绘制
LayeredGraphPlot 试图在一系列层次中画出图的各个顶点,其中把主导顶点放置在顶部,并逐步画出低层次的顶点.
| LayeredGraphPlot[{vi1->vj1,vi2->vj2,...}] | |
| 以分层形式生成图的一个图线,其中顶点 | |
| LayeredGraphPlot[{{vi1->vj1,lbl1},...}] | |
| 把标签 | |
| LayeredGraphPlot[g,pos] | 在图线中的位置 pos 上放置主导顶点 |
| LayeredGraphPlot[m] | 产生由邻接矩阵 m 表示的分层图 |
LayeredGraphPlot 绘制一个图,使得边的指向主要是向下的. LayeredGraphPlot 的第二个变量指明根节点的位置. 该变量的可能值为 Right、Left、Top 和 Bottom.
| In[1]:= |
| Out[1]= | ![]() |
| In[2]:= |
| Out[2]= | ![]() |
由于浮点的不同,LayeredGraphPlot 可能会在不同的平台上,产生稍有不同的输出.
LayeredGraphPlot 的选项
除了 Graphics 的选项,LayeredGraphPlot 也接受下列选项.
选项名 | 默认值 | |
| DataRange | Automatic | 所产生的顶点坐标的范围 |
| DirectedEdges | True | 是否把边显示为有向箭头 |
| EdgeLabeling | True | 是否包含对边给出的标签 |
| EdgeRenderingFunction | Automatic | 对边给出明确的图形函数 |
| MultiedgeStyle | Automatic | 如何在顶点之间绘制重边 |
| PackingMethod | Automatic | 用于排列分量的方法 |
| PlotRangePadding | Automatic | 在图线周边填充的空白量 |
| PlotStyle | Automatic | 绘制对象所采用的样式 |
| SelfLoopStyle | Automatic | 如何绘制连接一个顶点自身的边 |
| VertexCoordinateRules | Automatic | 明确的顶点坐标的规则 |
| VertexLabeling | Automatic | 是否把顶点名称显示为标签 |
| VertexRenderingFunction | Automatic | 对顶点给出明确的图形函数 |
LayeredGraphPlot 的选项.
DirectedEdges
DirectedEdges 选项指定是否把边画为箭头. 该选项的可能值为 True 或者 False. 该选项的默认值为 True.
| In[3]:= |
| Out[3]= | ![]() |
EdgeLabeling
EdgeLabeling 选项指定是否并且如何显示对边给定的标签. 该选项的可能值为 True、False 或者 Automatic. 该选项的默认值为 True,在默认值下,显示图中给定的边标签. 设置 EdgeLabeling->Automatic 时,标签显示为工具提示条.
| In[4]:= |
| Out[4]= | ![]() |
| In[5]:= |
| Out[5]= | ![]() |
| In[6]:= |
| Out[6]= | ![]() |
EdgeRenderingFunction
EdgeRenderingFunction 选项指定了图的边的图形表示方法. 该选项的可能值为 Automatic、None 或者是一个给出图形基元和指令的合理组合的函数. 使用默认设置 Automatic,对每条边使用深红色的线绘制. 当设置EdgeRenderingFunction->None 时,则不绘制边.
| In[7]:= |
| Out[7]= | ![]() |
设置 EdgeRenderingFunction->g 时,每条边使用由图形基元和由函数 g 给定的指令绘制. 它可以采用三个或多个变量,形如
,其中
、
是边的起点或终点的坐标,
、
是起始和终止顶点,而
是为边指定的任意标签或者或者 None. EdgeRenderingFunction->g 的明确设置重载 EdgeLabeling 和 DirectedEdges 的设置.
| In[8]:= |
| Out[8]= | ![]() |
| In[9]:= |
| In[10]:= |
| Out[10]= | ![]() |
MultiedgeStyle
选项 MultiedgeStyle 指定是否在两个顶点之间绘制重边. MultiedgeStyle 的可能值为 Automatic(默认)、True、False 或者一个正实数. 在默认设置 MultiedgeStyle->Automatic 下,对于由规则列表指定的图显示重边,而如果图由邻接矩阵指定,则不显示重边. 设置 MultiedgeStyle->
时,重边以尺度化的距离
展开.
| In[11]:= |
| Out[11]= | ![]() |
| In[12]:= |
| Out[12]= | ![]() |
| In[13]:= |
| Out[13]= | ![]() |
PackingMethod
选项 PackingMethod 指定用来排列非连通分量的方法. 该选项的可能值为 Automatic(默认)、
、
、
、
、
和
. 设置 PackingMethod->"ClosestPacking" 时,使用位四角法(polyomino method)[6] 从左上角开始排列并且使分量的距离尽可能接近. 设置 PackingMethod->"ClosestPackingCenter" 时,从中心开始排列分量. 设置 PackingMethod->"Layered" 时,从左上角开始分层排列. 设置 PackingMethod->"LayeredLeft" 或者 PackingMethod->"LayeredTop" 时,分别从上/左开始分层排列分量. 设置 PackingMethod->"NestedGrid" 时,在嵌套网格中排列各分量. 典型默认设置为PackingMethod->"Layered",从最大边界框区域中的分量开始进行排列.
| In[14]:= |
| Out[14]= | ![]() |
| In[15]:= |
| Out[15]= | ![]() |
PlotRangePadding
PlotRangePadding 是由 LayeredGraphPlot 继承的图形函数的通用选项.
PlotStyle
PlotStyle 是由 LayeredGraphPlot 继承的图形函数的一个通用选项. 选项 PlotStyle 指定了绘制对象所采用的样式.
| In[16]:= |
| Out[16]= | ![]() |
SelfLoopStyle
选项 SelfLoopStyle 指定是否以及如何对与自身连接的顶点绘制自循环(loop). 该选项的可能值为 Automatic (默认)、True、False 或者一个正实数. 设置 SelfLoopStyle->Automatic 时,如果图由规则列表指定,则显示自循环,但是如果由邻接矩阵给定,则不显示. 设置 SelfLoopStyle->
时,自循环使用直径
绘制(相对于平均边长).
| In[17]:= |
| Out[17]= | ![]() |
| In[18]:= |
| Out[18]= | ![]() |
| In[19]:= |
| Out[19]= | ![]() |
VertexCoordinateRules
选项 VertexCoordinateRules 指明顶点坐标. 可能值为 None 或者坐标列表. LayeredGraphPlot 目前不支持由规则列表指定的坐标.
| In[20]:= |
| Out[20]= | ![]() |
| In[21]:= |
| Out[21]= | ![]() |
VertexLabeling
选项 VertexLabeling 指定是否把顶点名称显示为标签. 该选项的可能值为 True、False、Automatic(默认)以及 Tooltip. VertexLabeling->True 显示标签. 对于由邻接矩阵指定的图,顶点标签采用连续整数
,其中 n 是矩阵的大小. 对于由规则列表指定的图,标签是在规则中使用的表达式. VertexLabeling->False 把每个顶点显示为一个点. VertexLabeling->Tooltip 把每个顶点显示为一个点,并且在工具提示条中给出它的名称. VertexLabeling->Automatic 把每个顶点显示为一个点,如果顶点数不太大的话,同时还会在工具提示条中给出它的名称. 用户也可以在规则列表的任意位置中使用 Tooltip[vk, vlbl] 来为顶点
指定其它工具提示条.
| In[22]:= |
| Out[22]= | ![]() |
| In[23]:= |
| Out[23]= | ![]() |
| In[24]:= |
| Out[24]= | ![]() |
VertexRenderingFunction
VertexRenderingFunction 选项指定图的边的图形表示. 该选项的可能值为 Automatic、None、或者是一个给出图形基元和指令的合理组合的函数. 使用默认设置 Automatic,顶点显示为点,而它们的名称以工具提示条的形式给出.
| In[22]:= |
| In[23]:= |
| Out[23]= | ![]() |
| In[24]:= |
| Out[24]= | ![]() |
设置 VertexRenderingFunction->g 时,每个顶点使用由
给定的图形基元绘制,其中
是顶点坐标,而
是顶点标签. VertexRenderingFunction->g 的明确设置重载 VertexLabeling 的设置.
| In[27]:= |
| Out[27]= | ![]() |
示例
流程图
LayeredGraphPlot 帮助可视化流程图,例如应用在商业、经济或技术演讲中.
| In[28]:= |
| Out[28]= | ![]() |
| In[29]:= |
| Out[29]= | ![]() |
食物链
使用 LayeredGraphPlot 可视化食物链.
| In[30]:= |
| Out[30]= | ![]() |
| In[2]:= |
| Out[2]= | ![]() |
Unix 的历史
LayeredGraphPlot 适用于可视化历史事件.
| In[32]:= |
| Out[32]= | ![]() |















































