主要内容

标签图的节点和边

这个例子展示了如何添加和自定义标签图节点和边。

创建和图

创建一个图表示网格街道和城市十字路口。添加权重边缘,这样的主要途径和十字街头出现不同的情节。绘制图形的边缘线宽度与边缘的重量成正比。

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);

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

添加节点标签

与100年或更少的节点图,MATLAB®自动标签使用数字节点指标或节点名称的节点(更大的默认图省略这些标签)。但是,你可以改变节点标签通过调整NodeLabel财产的GraphPlot对象P或通过使用labelnode函数。因此,即使节点名称,您可以使用不同的名称的标签。

删除默认数字节点标签。标签的一个十字路口和另一个工作

labelnode (P 1:12)labelnode (P, 5,“回家”)labelnode (P, 12日‘工作’)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

添加标签边缘

绘制图的边缘自动标记。您可以添加标签边缘通过改变的价值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;

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

调整字体属性

图的节点和边的标签图都有自己的属性,控制标签的外观和风格。因为属性是解耦的,您可以使用不同的风格为节点标签和标签。

节点标签,你可以调整:

  • NodeLabel

  • NodeLabelColor

  • NodeFontName

  • NodeFontSize

  • NodeFontWeight

  • NodeFontAngle

边缘标签,你可以调整:

  • EdgeLabel

  • EdgeLabelColor

  • EdgeFontName

  • EdgeFontSize

  • EdgeFontWeight

  • EdgeFontAngle

在这个例子中使用这些属性调整字体与纽约城市街道:

  • 改变NodeFontSizeNodeLabelColor这十字路口标签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”;

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

强调边缘

寻找家庭和工作节点之间的最短路径并检查哪些街道的道路上。用红色突出路径上的节点和边和删除所有边的边标签而不是路径。

[路径,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),)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

另请参阅

相关的话题