此示例显示如何打印图形,然后自定义显示以向图形节点和边添加标签或高亮显示。
使用情节
绘图函数图
和有向图
对象。默认情况下,情节
检查图形的大小和类型,以确定使用哪种布局。生成的图形窗口不包含坐标轴标记。但是,如果您指定(x, y)节点的坐标XData
,YData
,或ZData
名称-值对,则图形包含轴标记。
节点标签会自动包含在包含100个或更少节点的图中。如果可用,节点标签使用节点名;否则,标签是数字节点索引。
例如,使用buckyball邻接矩阵创建一个图,然后使用所有默认选项绘制这个图。如果你叫情节
并指定输出参数,然后函数返回一个句柄GraphPlot
对象。随后,可以使用此对象调整打印的属性。例如,可以更改边的颜色或样式、节点的大小和颜色等。
图G =(巴基);p =情节(G)
p=带属性的GraphPlot:NodeColor:[0.4470 0.7410]标记化:4标记:“o”EdgeColor:[0.4470 0.7410]线宽:0.5000线型:“-”NodeLabel:{1x60 cell}EdgeLabel:{}扩展数据:[1x60 double]YData:[1x60 double]ZData:[1x60 double]显示所有属性
在你掌握了控制权之后GraphPlot
对象,使用点索引访问或更改属性值。有关可以调整的属性的完整列表,请参见GraphPlot属性.
改变节点颜色
来“红色”
.
p.NodeColor =“红色”;
确定边的线宽。
p、 线宽
ans = 0.5000
创建并绘制一个图形,表示一个L形膜,该膜由一个有12个节点的正方形网格构成。使用指定一个输出参数情节
将句柄返回GraphPlot
对象
n = 12;一个= delsq (numgrid (“我,n));G=图(A,“omitselfloops”)
G = graph with properties: Edges: [130x2 table] Nodes: [75x0 table]
p =情节(G)
p = GraphPlot with properties: NodeColor: [0 0.4470 0.7410] marksize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {1x75 cell} EdgeLabel: {} XData: [1x75 double] YData: [1x75 double] ZData: [1x75 double]显示所有属性
使用布局
函数更改绘图中图形节点的布局。不同的布局选项会自动计算绘图的节点坐标。或者,您可以使用XData
,YData
和ZData
的属性GraphPlot
对象
不要使用默认的2d布局方法,使用布局
指定“force3”
布局,这是一种三维力导向布局。
布局(p,“force3”)视图(3)
根据度为图节点着色。在这个图中,所有内部节点的最大度都是4,沿着图边界的节点的最大度是3,角节点的最小度是2。将节点着色数据存储为变量节点颜色
在G.Nodes
.
G.Nodes.NodeColors =学位(G);p.NodeCData = G.Nodes.NodeColors;colorbar
向图形边添加一些随机整数权重,然后绘制边,使其线宽与其权重成比例。由于边线宽度大约大于7开始变得麻烦,请缩放边线宽度,使权重最大的边线的线宽为7。将此边宽度数据存储为变量LWidths
在G.边缘
.
G.Edges.Weight = randi([10 250],130,1);G.Edges.LWidths = 7 * G.Edges.Weight / max (G.Edges.Weight);p.LineWidth = G.Edges.LWidths;
的右上角提取并绘制G
作为一个子图,以便于阅读图上的详细信息。新的图,H
,继承了节点颜色
和LWidths
变量G
,这样就可以简单地重新创建前面的自定义情节。但是,其中的节点H
重新编号以说明图中新的节点数目。
H =子图(G,[1:31 36:41]);p1 =情节(H,“NodeCData”H.Nodes.NodeColors,“线宽”,H.Edges.lWidth);颜色栏
使用标签
标记宽度大于的边6
有了这个标签,,“大”
这个labelnode
函数以类似的方式对节点进行标记。
labeledge (p1,找到(H.Edges。LWidths > 6),“大”)
求子图中节点11到节点37之间的最短路径,H
.用红色高亮此路径的边缘,并增加路径上的结束节点的大小。
路径= shortestpath (37) H, 11日
路径=1×1011 12 17 18 19 24 25 30 36 37
突出显示(p1,[11 37])突出显示(p1,路径,“EdgeColor”,“r”)
删除节点标签和颜色栏,并将所有节点设置为黑色。
p1.NodeLabel={};颜色条关p1。NodeColor =“黑”;
查找忽略边权重的其他最短路径。以绿色突出显示此路径。
37 path2 = shortestpath (H, 11日,“方法”,“减重”)
路径2=1×1011 12 13 14 15 20 25 30 31 37
突出(p1, path2,“EdgeColor”,‘g’)
创建具有数十万甚至数百万个节点和/或边的图是很常见的,情节
对大型图的处理略有不同,以保持可读性和性能。的情节
函数在处理具有100个以上节点的图形时进行以下调整:
默认的图形布局方法始终为“子空间”
.
节点不再自动标记。
的MarkerSize
属性设置为2
.(较小的图形的标记大小为4
).
的箭头大小
有向图的属性设置为4
.(较小的有向图使用的箭头大小为7
).