标签图的节点和边
这个例子展示了如何添加和自定义标签图节点和边。
创建和图
创建一个图表示网格街道和城市十字路口。添加权重边缘,这样的主要途径和十字街头出现不同的情节。绘制图形的边缘线宽度与边缘的重量成正比。
s = [1 1 2 5 4 2 3 4 5 6 7 8 7 8 9 10 11);t = [2 3 4 5 6 5 6 7 8 9 10 8 9 11 12 11 12);重量= [1 5 1 5 5 5 1 5 5 5 5 5 1 1];图G = (s t重量);P =情节(G,“线宽”,G.Edges.Weight);
添加节点标签
与100年或更少的节点图,MATLAB®自动标签使用数字节点指标或节点名称的节点(更大的默认图省略这些标签)。但是,你可以改变节点标签通过调整NodeLabel
财产的GraphPlot
对象P
或通过使用labelnode
函数。因此,即使节点名称,您可以使用不同的名称的标签。
删除默认数字节点标签。标签的一个十字路口家
和另一个工作
。
labelnode (P 1:12”)labelnode (P, 5,“回家”)labelnode (P, 12日‘工作’)
添加标签边缘
绘制图的边缘不自动标记。您可以添加标签边缘通过改变的价值EdgeLabel
财产的GraphPlot
对象P
或通过使用labeledge
函数。
为在纽约街头添加标签边缘。边的顺序中定义G.Edges
表的图,所以标签您指定的顺序必须尊重秩序。方便存储标签直接在边缘G.Edges
表,所以边缘名称住旁边其他边缘信息。
G.Edges
ans =17×2表EndNodes重量________ ________ 1 2 1 1 5 4 2 3 1 2 5 5 3 6 5 4 5 1 4 7 5 5 6 1 5 8 5 6 9 5 7 8 1 7 10 5 8 9 1 8 11 5 9 12 5 10 11 1⋮
这个例子中有17个边缘但只有7独特的街道名称。因此,它是有意义的定义单元阵列的街道名称,然后索引单元阵列为每条边检索所需的街道名称。添加一个变量G.Edges
表包含街道名称。
街道= {“第八大街”“第七大街”“第六大街”“第五大道”…“W 20圣”“W 21 St”“W 22日圣”}';第1 = [1 5 1 6 7 2 5 2 6 7 3 5 6 7 4 4];G.Edges。StreetName =街道(第1);G.Edges
ans =17×3表EndNodes重量StreetName ________ ________ _________________ 1 2 1{第八大街的}1 4 5 {“W 20圣”}2 3 1{第八大街的}2 5 5 {“W 21 St”} 3 6 5 {“W 22日圣”}4 5 1{“第七大街”}4 7 5 {“W 20圣”}5 6 1{“第七大街”}5 8 5 {“W 21 St”} 6 9 5 {“W 22日圣”}7 8 1{“第六大街”}7 10 5 {“W 20圣”}8 9 1{“第六大街”}8 11 5 {“W 21 St”} 9 12 5 {“W 22日圣”}10 11 1{“第五大道”}⋮
更新EdgeLabel
属性来引用这些街道名称。
P。EdgeLabel = G.Edges.StreetName;
调整字体属性
图的节点和边的标签图都有自己的属性,控制标签的外观和风格。因为属性是解耦的,您可以使用不同的风格为节点标签和标签。
为节点标签,你可以调整:
NodeLabel
NodeLabelColor
NodeFontName
NodeFontSize
NodeFontWeight
NodeFontAngle
为边缘标签,你可以调整:
EdgeLabel
EdgeLabelColor
EdgeFontName
EdgeFontSize
EdgeFontWeight
EdgeFontAngle
在这个例子中使用这些属性调整字体与纽约城市街道:
改变
NodeFontSize
和NodeLabelColor
这十字路口标签12 pt.字体和红色。改变
EdgeFontWeight
,EdgeFontAngle
,EdgeFontSize
使用一个更大的,大胆的字体在一个方向和一个更小的街道,斜体字体街道的另一个方向。改变
EdgeFontName
使用新罗马字体边缘标签。
您可以使用突出
函数改变图形的属性的一个子集图边缘。创建一个逻辑索引isAvenue
这是真正的
对边缘包含词的标签“大街”
。使用这个逻辑向量作为输入突出
在一个方式,标签的所有途径,和所有的non-Avenues另一种方式。
P。NodeFontSize = 12;P。NodeLabelColor =“r”;isAvenue =包含(P.EdgeLabel,“大街”);突出(P,“边缘”isAvenue,“EdgeFontAngle”,“斜体”,“EdgeFontSize”7);突出(P,“边缘”~ isAvenue,“EdgeFontWeight”,“大胆”,“EdgeFontSize”10);P。EdgeFontName =“Times New Roman”;
强调边缘
寻找家庭和工作节点之间的最短路径并检查哪些街道的道路上。用红色突出路径上的节点和边和删除所有边的边标签而不是路径。
[路径,d, pathEdges] = shortestpath (G、5、12)
路径=1×45 6 9 12
d = 11
pathEdges =1×38 10 15
G.Edges.StreetName (pathEdges:)
ans =3 x1细胞{“第七大街”}{“W 22日圣”}{' W 22日圣'}
突出(P,“边缘”pathEdges,“EdgeColor”,“r”)突出(P,路径,“NodeColor”,“r”)labeledge (P, setdiff (1: numedges (G), pathEdges),”)