highlight
突出显示绘制的图中的节点和边
说明
highlight(___,
使用一个或多个名称-值对组参量(采用上述语法中的任意输入参量组合)指定的其他选项。例如,Name,Value
)highlight(H,nodes,'NodeColor','g')
通过将部分节点的颜色更改为绿色(而不是增加其标记大小)突出显示这些节点。
示例
突出显示图节点
创建并绘制一个图。返回 GraphPlot
对象的句柄 h。
s = 1; t = 2:6; G = graph(s,t); h = plot(G,'Layout','force')
h = GraphPlot with properties: NodeColor: [0 0.4470 0.7410] MarkerSize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {'1' '2' '3' '4' '5' '6'} EdgeLabel: {} XData: [-1.7216e-04 -1.0659 1.7077 1.0376 -1.6982 0.0190] YData: [3.6622e-05 -1.4361 0.5342 -1.4577 0.5713 1.7884] ZData: [0 0 0 0 0 0] Use GET to show all properties
通过增加节点 1 和 3 的标记大小突出显示这些节点。
highlight(h,[1 3])
通过更改节点 1 和 3 的颜色突出显示这些节点。
highlight(h,[1 3],'NodeColor','g')
突出显示图的最小生成树
创建并绘制一个图。返回 GraphPlot
对象的句柄 h
。
s = [1 1 1 1 1 1 2 3 4 5 6 7 7 7 7 8 9 10 11 8 6]; t = [2 3 4 5 6 7 3 4 5 6 2 8 9 10 11 10 10 11 8 1 11]; G = graph(s,t); h = plot(G)
h = GraphPlot with properties: NodeColor: [0 0.4470 0.7410] MarkerSize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {'1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11'} EdgeLabel: {} XData: [-0.2157 -0.5149 -0.3637 -1.1504 -1.4097 -0.7742 0.9685 0.4346 1.9173 1.0259 0.0823] YData: [-0.4806 -1.0307 -1.7531 -1.4460 -0.5843 0.0987 0.6570 0.5422 1.4401 1.4411 1.1157] ZData: [0 0 0 0 0 0 0 0 0 0 0] Use GET to show all properties
计算图的最小生成树。通过增加绘图中最小生成树的边的线宽和更改其颜色,突出显示最小生成树子图。
[T,p] = minspantree(G); highlight(h,T,'EdgeColor','r','LineWidth',1.5)
突出显示最短路径
创建并绘制一个图。返回 GraphPlot
对象的句柄 h
。
n = 10; A = delsq(numgrid('L',n+2)); G = graph(A,'omitselfloops'); G.Edges.Weight = ones(numedges(G),1); h = plot(G);
通过将沿节点 74 和 21 之间最短路径的节点和边的颜色更改为绿色,突出显示该最短路径。
path = shortestpath(G,74,21); highlight(h,path,'NodeColor','g','EdgeColor','g')
突出显示节点的相邻节点
创建一个图,用于表示一个每侧各有 8 个节点的方形网格。绘制图并返回 GraphPlot
对象的句柄 p
。
n = 8; A = delsq(numgrid('S',n+2)); G = graph(A,'omitselfloops'); p = plot(G);
查找节点 36 的相邻节点。
n36 = neighbors(G,36)
n36 = 4×1
28
35
37
44
使用 highlight
将节点 36 的颜色更改为绿色,其相邻节点和连接边的颜色更改为红色。
highlight(p,36,'NodeColor',[0 0.75 0]) highlight(p,n36,'NodeColor','red') highlight(p,36,n36,'EdgeColor','red')
突出显示最大流的路径
创建并绘制一个有向图。返回 GraphPlot
对象的句柄 h
。
G = digraph(bucky); h = plot(G);
计算节点 1 和 56 之间的最大流。指定 maxflow
的两个输出来返回非零流的有向图 GF
。
[mf,GF] = maxflow(G,1,56)
mf = 3
GF = digraph with properties: Edges: [28x2 table] Nodes: [60x0 table]
使用 highlight
更改包含非零流值的边的颜色。此外,将源节点 1 和目标节点 56 的颜色更改为绿色。
highlight(h,GF,'EdgeColor',[0.9 0.3 0.1],'NodeColor',[0.9 0.3 0.1]) highlight(h,[1 56],'NodeColor','g')
多重图中的最短路径
绘制多重图中两个节点之间的最短路径,并突出显示经过的特定边。
创建一个具有五个节点的加权多重图。有几对节点之间的边数超过一条。绘制图作为参考。
G = graph([1 1 1 1 1 2 2 3 3 3 4 4],[2 2 2 2 2 3 4 4 5 5 5 2],[2 4 6 8 10 5 3 1 5 6 8 9]);
p = plot(G,'EdgeLabel',G.Edges.Weight);
找出节点 1 和节点 5 之间的最短路径。由于有几个节点对之间的边数超过一条,因此为 shortestpath
指定三个输出,以返回最短路径所经过的特定边。
[P,d,edgepath] = shortestpath(G,1,5)
P = 1×5
1 2 4 3 5
d = 11
edgepath = 1×4
1 7 9 10
结果表明最短路径的总长度为 11,并沿 G.Edges(edgepath,:)
指定的边前进。
G.Edges(edgepath,:)
ans=4×2 table
EndNodes Weight
________ ______
1 2 2
2 4 3
3 4 1
3 5 5
通过使用 highlight
函数和 'Edges'
名称-值对组指定经过的各条边的索引来突出显示这条边路径。
highlight(p,'Edges',edgepath)
输入参数
nodeIDs
— 要突出显示的节点
逻辑向量 | 节点索引 | 节点名称
要突出显示的节点,指定为逻辑向量,或指定为一个或多个节点索引或节点名称。如果 nodeIDs
是逻辑向量,则其长度必须为 numnodes(G)
。
下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。
形式 | 单一节点 | 多个节点 |
---|---|---|
节点索引 | 标量 示例: | 向量 示例: |
节点名称 | 字符向量 示例: | 字符向量元胞数组 示例: |
字符串标量 示例: | 字符串数组 示例: |
nodeIDs
不得指定与 highlight
的任何可选参数名称冲突的节点名称,例如 'Edges'
或 'EdgeColor'
。对于这些情况,请改用 findnode
传入节点索引。
G
— 要突出显示的图
graph
对象 | digraph
对象
要突出显示的图,指定为 graph
或 digraph
对象。G
必须具有与基础图 H
相同的节点,但具有的边是后者的边的子集。度为 0
的孤立节点不会突出显示。
s,t
— 节点对组(以单独参量指定)
节点索引 | 节点名称
节点对组,指定为单独的节点索引或节点名称参量。s
和 t
中位置类似的元素指定图中边的源和目标节点。
s
和 t
不得指定与 highlight
的任何可选参数名称冲突的节点名称,例如 'Edges'
或 'EdgeColor'
。对于这些情况,请改用 findnode
传入节点索引。
示例: highlight(H,[1 2],[3 3])
突出显示图边 (1,3)
和 (2,3)
。
示例: highlight(H,'a','b')
突出显示从 'a'
到 'b'
的所有边。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: highlight(H,nodes,'NodeColor','y')
Edges
— 要突出显示的边
标量 | 向量
要突出显示的边,以逗号分隔的对组形式指定,该对组由 'Edges'
和一个标量边索引、边索引向量或逻辑向量组成。当相同的两个节点之间存在多条边时,可以使用此名称-值对组来突出显示节点之间的特定边。
此名称-值对组的值可以是来自 shortestpath
或 shortestpathtree
的第三个输出,例如 [path,d,edgepath] = shortestpath(…)
。
示例: highlight(p,'Edges',edgepath)
EdgeColor
— 边颜色
[0 0.4470 0.7410]
(默认) | RGB 三元组 | 十六进制颜色代码 | 颜色名称
边颜色,指定为逗号分隔的对组,其中包含 'EdgeColor'
以及一个 RGB 三元组、十六进制颜色代码或颜色名称。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 短名称 RGB 三元组 十六进制颜色代码 外观 "red"
"r"
[1 0 0]
"#FF0000"
"green"
"g"
[0 1 0]
"#00FF00"
"blue"
"b"
[0 0 1]
"#0000FF"
"cyan"
"c"
[0 1 1]
"#00FFFF"
"magenta"
"m"
[1 0 1]
"#FF00FF"
"yellow"
"y"
[1 1 0]
"#FFFF00"
"black"
"k"
[0 0 0]
"#000000"
"white"
"w"
[1 1 1]
"#FFFFFF"
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 十六进制颜色代码 外观 [0 0.4470 0.7410]
"#0072BD"
[0.8500 0.3250 0.0980]
"#D95319"
[0.9290 0.6940 0.1250]
"#EDB120"
[0.4940 0.1840 0.5560]
"#7E2F8E"
[0.4660 0.6740 0.1880]
"#77AC30"
[0.3010 0.7450 0.9330]
"#4DBEEE"
[0.6350 0.0780 0.1840]
"#A2142F"
示例: plot(G,'EdgeColor','r')
创建一个具有红色边的图论图。
LineStyle
— 线型
'-'
(默认) | '--'
| ':'
| '-.'
| 'none'
线型,指定为逗号分隔的对组,其中包含 'LineStyle'
和下表中列出的线型之一。
字符 | 线型 | 表示的线条 |
---|---|---|
'-' | 实线 |
|
'--' | 虚线 |
|
':' | 点线 |
|
'-.' | 点划线 |
|
'none' | 无线条 | 无线条 |
LineWidth
— 边线宽
0.5
(默认) | 正值
边线宽,指定为逗号分隔的对组,其中包含 'LineWidth'
和一个正值(以磅为单位)。
示例: 0.75
ArrowSize
— 箭头大小
正值
箭头大小,指定为以磅为单位的正值。对于具有 100 个或更少节点的图,ArrowSize
的默认值是 7
,对于超过 100 个节点的图,默认值是 4
。
ArrowSize
仅用于有向图。
示例: 15
ArrowPosition
— 箭头在边上的位置
0.5
(默认) | 标量
箭头在边上的位置,指定为 [0 1]
范围内的值。接近 0 的值表示箭头更靠近源节点,接近 1 的值表示箭头更靠近目标节点。默认值为 0.5
,表示箭头位于源节点和目标节点的中间。
ArrowPosition
仅用于有向图。
NodeColor
— 节点颜色
[0 0.4470 0.7410]
(默认) | RGB 三元组 | 十六进制颜色代码 | 颜色名称
节点颜色,指定为逗号分隔的对组,其中包含 'NodeColor'
以及一个 RGB 三元组、十六进制颜色代码或颜色名称。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 短名称 RGB 三元组 十六进制颜色代码 外观 "red"
"r"
[1 0 0]
"#FF0000"
"green"
"g"
[0 1 0]
"#00FF00"
"blue"
"b"
[0 0 1]
"#0000FF"
"cyan"
"c"
[0 1 1]
"#00FFFF"
"magenta"
"m"
[1 0 1]
"#FF00FF"
"yellow"
"y"
[1 1 0]
"#FFFF00"
"black"
"k"
[0 0 0]
"#000000"
"white"
"w"
[1 1 1]
"#FFFFFF"
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 十六进制颜色代码 外观 [0 0.4470 0.7410]
"#0072BD"
[0.8500 0.3250 0.0980]
"#D95319"
[0.9290 0.6940 0.1250]
"#EDB120"
[0.4940 0.1840 0.5560]
"#7E2F8E"
[0.4660 0.6740 0.1880]
"#77AC30"
[0.3010 0.7450 0.9330]
"#4DBEEE"
[0.6350 0.0780 0.1840]
"#A2142F"
示例: plot(G,'NodeColor','k')
创建一个具有黑色节点的图论图。
Marker
— 节点标记符号
'o'
(默认) | 字符向量
节点标记符号,指定为逗号分隔的对组,其中包含 'Marker'
和下表中列出的字符向量之一。默认为对图节点使用圆形标记。
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
示例: '+'
示例: 'diamond'
MarkerSize
— 节点标记大小
正值
节点标记大小,指定为逗号分隔的对组,其中包含 'MarkerSize'
和一个正值(以磅为单位)。对于具有 100 个或更少节点的图,默认标记大小是 4
,对于超过 100 个节点的图,默认标记大小是 2
。
示例: 10
NodeLabelColor
— 节点标签的颜色
[0 0 0]
(默认) | RGB 三元组 | 十六进制颜色代码 | 颜色名称
节点标签颜色,指定为 RGB 三元组、十六进制颜色代码或颜色名称。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
示例: plot(G,'NodeLabel',C,'NodeLabelColor','m')
创建一个具有品红色节点标签的图论图。
EdgeLabelColor
— 边标签的颜色
[0 0 0]
(默认) | RGB 三元组 | 十六进制颜色代码 | 颜色名称
边标签颜色,指定为 RGB 三元组、十六进制颜色代码或颜色名称。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
示例: plot(G,'EdgeLabel',C,'EdgeLabelColor','m')
创建一个具有品红色边标签的图论图。
NodeFontName
— 节点标签的字体名称
'Helvetica'
(默认) | 支持的字体名称 | 'FixedWidth'
节点标签的字体名称,指定为支持的字体名称或 'FixedWidth'
。要正确显示和打印,您必须选择系统支持的字体。默认字体取决于具体操作系统和区域设置。例如,Windows® 和 Linux® 英文系统默认使用 Helvetica 字体。
要使用在任何区域设置中都有较好显示效果的等宽字体,请指定 'FixedWidth'
。
示例: 'Cambria'
NodeFontSize
— 节点标签的字体大小
8
(默认) | 正数
节点标签的字体大小,指定为正数。
NodeFontWeight
— 节点标签中文本的粗细
'normal'
(默认) | 'bold'
节点标签中文本的粗细,指定为 'normal'
或 'bold'
:
'bold'
- 字符轮廓比普通字符粗'normal'
- 由特定字体定义的普通粗细
并非所有字体都有加粗字体。
数据类型: cell
| char
| string
NodeFontAngle
— 节点标签中文本的字符倾斜
'normal'
(默认) | 'italic'
节点标签中文本的字符倾斜,指定为 'normal'
或 'italic'
:
'italic'
- 字符倾斜'normal'
- 字符不倾斜
并非所有字体都有两种字体样式。
数据类型: cell
| char
| string
EdgeFontName
— 边标签的字体名称
'Helvetica'
(默认) | 支持的字体名称 | 'FixedWidth'
边标签的字体名称,指定为支持的字体名称或 'FixedWidth'
。要正确显示和打印,您必须选择系统支持的字体。默认字体取决于具体操作系统和区域设置。例如,Windows 和 Linux 英文系统默认使用 Helvetica 字体。
要使用在任何区域设置中都有较好显示效果的等宽字体,请指定 'FixedWidth'
。
示例: 'Cambria'
EdgeFontSize
— 边标签的字体大小
8
(默认) | 正数
边标签的字体大小,指定为正数。
EdgeFontWeight
— 边标签中文本的粗细
'normal'
(默认) | 'bold'
边标签中文本的粗细,指定为 'normal'
或 'bold'
:
'bold'
- 字符轮廓比普通字符粗'normal'
- 由特定字体定义的普通粗细
并非所有字体都有加粗字体。
数据类型: cell
| char
| string
EdgeFontAngle
— 边标签中文本的字符倾斜
'normal'
(默认) | 'italic'
边标签中文本的字符倾斜,指定为 'normal'
或 'italic'
:
'italic'
- 字符倾斜'normal'
- 字符不倾斜
并非所有字体都有两种字体样式。
数据类型: cell
| char
| string
版本历史记录
在 R2015b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)