情节
绘制图形节点和边
描述
例子
图
使用稀疏邻接矩阵创建图,然后绘制图。
N = 10;A = delsq(numgrid(“L”、n + 2));G =图(A,“omitselfloops”)
G = graph with properties:边数:[130x2 table]节点数:[75x0 table]
情节(G)
使用直线说明符绘制图形
具有指定布局的绘图图
创建有向图,然后使用“力”
布局。
G =有向图(1,2:5);G = add (G,2,6:15);G = add (G,15,16:20)
G =有向图属性:边:[19x1表]节点:[20x0表]
情节(G,“布局”,“力”)
自定义图节点坐标
创建一个加权图。
S = [1 1 1 1 1 2 2 7 7 9 3 3 1 4 10 8 4 5 6 8];T = [2 3 4 5 7 6 7 5 9 6 6 10 10 11 11 8 8 11 9];权重= [1 1 1 1 3 3 2 4 16 2 8 8 9 3 2 10 12 15 16];G =图(s,t,权值)
G =具有属性的图:边:[20x2表]节点:[11x0表]
使用节点的自定义坐标绘制图形。x坐标由XData
时,y坐标指定为YData
, z坐标指定为ZData
.使用EdgeLabel
使用边权重标记边。
X = [0 0.5 -0.5 -0.5 0.5 0 1.5 0 2 -1.5 -2];Y = [0 0.5 0.5 -0.5 -0.5 2 0 -2 0 0 0];Z = [5 3 3 3 3 0 1 0 0 1 0];情节(G,“XData”, x,“YData”, y,“ZData”, z,“EdgeLabel”G.Edges.Weight)
从上方查看图表。
视图(2)
边宽与边重成比例
创建一个加权图。
S = [1 1 1 1 2 2 3 4 4 5 6];T = [2 3 4 5 3 6 6 7 7 7];权重= [50 10 20 80 90 90 30 20 100 40 60];G =图(s,t,权值)
G =具有属性的图:边:[11x2表]节点:[7x0表]
绘制图形,用它们的权重标记边缘,并使边缘的宽度与它们的权重成比例。使用边权重的重新缩放版本来确定每条边的宽度,这样最宽的线的宽度为5。
LWidths = 5*G.Edges.Weight/max(G.Edges.Weight);情节(G,“EdgeLabel”G.Edges.Weight,“线宽”LWidths)
标记图节点和边
创建一个有向图。用节点和边的自定义标签绘制图形。
S = [1 1 1 2 2 3 3 4 4 5 6 7];T = [2 3 4 5 6 5 7 6 8 8 8];G =有向图(s,t)
G =有向图属性:边:[12x1表]节点:[8x0表]
eLabels = {“x”“y”“z”“y”“z”“x”“z”“x”“y”“z”“y”“x”};nLabels = {“{0}”,“{x}”,“{y}”,“{z}”,“{x, y}”,“{x, z}”,“{y, z}”,“{x, y, z}”};情节(G,“布局”,“力”,“EdgeLabel”eLabels,“NodeLabel”nLabels)
调整GraphPlot属性
创建并绘制有向图。指定输出参数情节
控件的句柄GraphPlot
对象。
S = [1 11 2 2 3 3 4 5 5 6 7 7 8 8 9 10 11];T = [2 3 10 4 12 4 5 6 6 7 9 8 10 9 11 12 11 12];G =有向图(s,t)
G =有向图属性:边:[18x1表]节点:[12x0表]
p = plot(G)
p = GraphPlot with properties: NodeColor: [0 0.4470 0.7410] MarkerSize: 4 Marker: 'o' EdgeColor: [0 0.4470 0.7410] LineWidth: 0.5000 LineStyle: '-' NodeLabel: {1x12 cell} EdgeLabel: {} XData: [2.5000 1.5000 2.5000 2 3 2 3 3 2.5000 4 3.5000 2.5000] YData:[7 6 6 5 5 44 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 000 000 00]显示所有属性
更改节点的颜色和标记。
p.Marker =“年代”;p.NodeColor =“r”;
增加节点的大小。
p.MarkerSize = 7;
更改边缘的线条样式。
p.LineStyle =“——”;
改变x而且y节点坐标。
p.XData = [2 4 1.5 3.5 1 3 1 2.1 3 2 3.1 4];p.YData = [3 3 3.5 3.5 4 4 2 2 1 1 1];
输入参数
LineSpec
- - - - - -线条样式、标记符号和颜色
特征向量|字符串向量
线条样式、标记符号和颜色,指定为符号的字符向量或字符串向量。这些符号可以以任何顺序出现,您可以省略一个或多个特征。如果省略线条样式,则绘图将为图形边缘显示实线。
例子:”,或“
使用红色圆圈节点标记和红色虚线作为边缘。
例子:的r *
使用红色星号节点标记和实心红线作为边。
线条样式 | 描述 | 产生的线 |
---|---|---|
“- - -” |
实线 |
|
“——” |
虚线 |
|
“:” |
虚线 |
|
“-”。 |
Dash-dotted线 |
|
标记 | 描述 | 产生的标志 |
---|---|---|
“o” |
圆 |
|
“+” |
加号 |
|
‘*’ |
星号 |
|
“。” |
点 |
|
“x” |
交叉 |
|
“_” |
水平线 |
|
“|” |
垂直的线 |
|
“年代” |
广场 |
|
' d ' |
钻石 |
|
“^” |
Upward-pointing三角形 |
|
“v” |
向下的三角形 |
|
“>” |
三点三角形 |
|
“<” |
只左向三角形 |
|
“p” |
五角星形 |
|
“h” |
六角星形 |
|
颜色名称 | 短名称 | RGB值 | 外观 |
---|---|---|---|
“红色” |
“r” |
[10 0 0] |
|
“绿色” |
‘g’ |
[0 10 0] |
|
“蓝” |
“b” |
[0 0 1] |
|
“青色” |
“c” |
[0 1 1] |
|
“红色” |
“米” |
[10 0 1] |
|
“黄色” |
“y” |
[11 10 0] |
|
“黑” |
“k” |
[0 0 0] |
|
“白色” |
' w ' |
[1 1 1] |
|
斧头
- - - - - -坐标轴对象
对象
坐标轴对象。如果不指定axis对象,则情节
使用当前轴(gca
).
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:p =情节(G,‘EdgeColor’,‘r’,‘NodeColor’,‘k’,“线型”,“-”)
这里列出的图形属性只是一个子集。有关完整列表,请参见GraphPlot属性.
ArrowSize
- - - - - -箭头的大小
积极的价值
请注意
ArrowSize
仅影响使用创建的有向图的显示有向图
.
箭头大小,由逗号分隔的对组成“ArrowSize”
一个正的点单位。的默认值ArrowSize
是7
对于节点数为100或更少的图,和4
对于有超过100个节点的图。
例子:15
EdgeCData
- - - - - -边线颜色数据
向量
边缘线的颜色数据,指定为由逗号分隔的对组成“EdgeCData”
一个向量的长度等于图中的边数。中的值EdgeCData
线性映射到当前颜色映射中的颜色,从而为绘制图形中的每条边生成不同的颜色。
EdgeColor
- - - - - -边缘的颜色
[0 0.4470 0.7410]
(默认)|RGB值|十六进制颜色代码|颜色名称|矩阵|“平”
|“没有”
边的颜色,指定为由逗号分隔的对组成“EdgeColor”
其中一个价值观是:
“没有”
—没有绘制边缘。“平”
的值决定每条边的颜色EdgeCData
.矩阵-每一行都是一个RGB三元组,表示一条边的颜色。矩阵的大小是
numedges (G)
——- - - - - -3.
.RGB三元组、十六进制颜色代码或颜色名称-边使用指定的颜色。
RGB三组和十六进制颜色代码对于指定自定义颜色很有用。
RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内
[0, 1]
;例如,[0.4 0.6 0.7]
.十六进制颜色码是字符向量或以散列符号(
#
)后面跟着三个或六个十六进制数字,取值范围为0
来F
.这些值不区分大小写。因此,颜色代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以通过名称指定一些常用颜色。该表列出了已命名的颜色选项、等效的RGB三元组和十六进制颜色代码。
颜色名称 短名称 RGB值 十六进制颜色代码 外观 “红色”
“r”
[10 0 0]
“# FF0000”
“绿色”
‘g’
[0 10 0]
“# 00 ff00”
“蓝”
“b”
[0 0 1]
“# 0000 ff”
“青色”
“c”
[0 1 1]
“# 00飞行符”
“红色”
“米”
[10 0 1]
“#就”
“黄色”
“y”
[11 10 0]
“# FFFF00”
“黑”
“k”
[0 0 0]
# 000000的
“白色”
' w '
[1 1 1]
“# FFFFFF”
这里是RGB三组和十六进制的颜色代码的默认颜色MATLAB®在许多类型的图中使用。
RGB值 十六进制颜色代码 外观 [0 0.4470 0.7410]
“# 0072 bd”
[0.8500 0.3250 0.0980]
“# D95319”
[0.9290 0.6940 0.1250]
“# EDB120”
[0.4940 0.1840 0.5560]
“# 7 e2f8e”
[0.4660 0.6740 0.1880]
“# 77 ac30”
[0.3010 0.7450 0.9330]
“# 4 dbeee”
[0.6350 0.0780 0.1840]
“# A2142F”
例子:情节(G,‘EdgeColor’,‘r’)
创建带有红色边的图形。
EdgeLabel
- - - - - -边的标签
{}
(默认)|向量|字符向量的单元格数组|字符串数组
边缘标签,指定为逗号分隔的对,由“EdgeLabel”
一个数字向量,字符向量的单元格数组,或者字符串数组。的长度EdgeLabel
必须等于图中的边数。默认情况下EdgeLabel
是空单元格数组(不显示边缘标签)。
例子:{' a ', ' b ', ' c '}
例子:[1 2 3]
例子:情节(G, EdgeLabel G.Edges.Weight)
用它们的权值标记图边。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
|字符串
布局
- - - - - -图形布局法
“汽车”
(默认)|“圆”
|“力”
|“分层”
|“子”
|“force3”
|“subspace3”
图形布局方法,指定为由逗号分隔的对组成“布局”
这是表格中的一个选项。该表还列出了兼容的名称-值对,以进一步细化每个布局方法。看到布局
有关这些特定于布局的名称-值对的更多信息,请参阅页面。
选项 | 描述 | 特定于布局的名称-值对 |
---|---|---|
“汽车” (默认) |
根据图形的大小和结构自动选择布局方法。 |
- - - - - - |
“圆” |
环形布局。将图节点放置在以原点为中心、半径为1的圆上。 |
|
“力” |
指定的布局[1].在相邻节点之间使用吸引力,在遥远节点之间使用排斥力。 |
|
“分层” |
节点分层布局[2],[3],[4].将图节点放入一组层中,显示层次结构。默认情况下,图层向下发展(有向无环图的箭头指向下)。 |
|
“子” |
子空间嵌入节点布局[5].在高维嵌入子空间中绘制图节点,然后将位置投影回2-D。默认情况下,子空间维数是100或节点总数,以较小者为准。 |
|
“force3” |
三维力定向布局。 |
|
“subspace3” |
三维子空间嵌入布局。 |
|
例子:情节(G,“布局”,“force3”,“迭代”,10)
例子:情节(G,“布局”,“子”,“维度”,50)
例子:情节(G,“布局”,“分层”)
线型
- - - - - -线条样式
“- - -”
(默认)|“——”
|“:”
|“-”。
|“没有”
|单元阵列|字符串向量
行样式,指定为逗号分隔的对,由“线型”
和本表中列出的线条样式之一,或作为这样值的单元格数组或字符串向量。指定字符向量或字符串向量的单元格数组,以便为每条边使用不同的线条样式。
字符(年代) | 线条样式 | 产生的线 |
---|---|---|
“- - -” |
实线 |
|
“——” |
虚线 |
|
“:” |
虚线 |
|
“-”。 |
Dash-dotted线 |
|
“没有” |
没有线 | 没有线 |
线宽
- - - - - -边线宽度
0.5
(默认)|积极的价值|向量
边线宽度,指定为由逗号分隔的对组成“线宽”
和一个正的点单位或这样的值的向量。指定一个向量,以便对图中的每条边使用不同的线宽。
例子:0.75
标记
- - - - - -节点标记符号
“o”
(默认)|特征向量|单元阵列|字符串向量
节点标记符号,指定为逗号分隔的对,由“标记”
和本表中列出的字符向量之一,或者作为这样值的单元格数组或字符串向量。默认情况下,图形节点使用圆形标记。指定字符向量或字符串向量的单元格数组,以便为每个节点使用不同的标记。
标记 | 描述 | 产生的标志 |
---|---|---|
“o” |
圆 |
|
“+” |
加号 |
|
‘*’ |
星号 |
|
“。” |
点 |
|
“x” |
交叉 |
|
“_” |
水平线 |
|
“|” |
垂直的线 |
|
“年代” |
广场 |
|
' d ' |
钻石 |
|
“^” |
Upward-pointing三角形 |
|
“v” |
向下的三角形 |
|
“>” |
三点三角形 |
|
“<” |
只左向三角形 |
|
“p” |
五角星形 |
|
“h” |
六角星形 |
|
“没有” |
没有标记 | 不适用 |
例子:“+”
例子:“钻石”
MarkerSize
- - - - - -节点标记大小
积极的价值|向量
节点标记的大小,由逗号分隔的对组成“MarkerSize”
以点为单位的一个正的值或这些值的向量。指定一个向量,以便为图中的每个节点使用不同的标记大小。的默认值MarkerSize
4是否表示节点数为100或更少的图,和2
对于有超过100个节点的图。
例子:10
NodeCData
- - - - - -节点标记的颜色数据
向量
节点标记的颜色数据,指定为由逗号分隔的对组成“NodeCData”
一个长度等于图中节点数的向量。中的值NodeCData
线性映射到当前颜色图中的颜色,从而为绘制的图形中的每个节点产生不同的颜色。
NodeColor
- - - - - -节点的颜色
[0 0.4470 0.7410]
(默认)|RGB值|十六进制颜色代码|颜色名称|矩阵|“平”
|“没有”
节点颜色,指定为由逗号分隔的对组成“NodeColor”
其中一个价值观是:
“没有”
—未绘制节点。“平”
—每个节点的颜色取决于的值NodeCData
.矩阵-每一行是一个RGB三元组,表示一个节点的颜色。矩阵的大小是
numnodes (G)
——- - - - - -3.
.RGB三元组、十六进制颜色代码或颜色名称-节点使用指定的颜色。
RGB三组和十六进制颜色代码对于指定自定义颜色很有用。
RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内
[0, 1]
;例如,[0.4 0.6 0.7]
.十六进制颜色码是字符向量或以散列符号(
#
)后面跟着三个或六个十六进制数字,取值范围为0
来F
.这些值不区分大小写。因此,颜色代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以通过名称指定一些常用颜色。该表列出了已命名的颜色选项、等效的RGB三元组和十六进制颜色代码。
颜色名称 短名称 RGB值 十六进制颜色代码 外观 “红色”
“r”
[10 0 0]
“# FF0000”
“绿色”
‘g’
[0 10 0]
“# 00 ff00”
“蓝”
“b”
[0 0 1]
“# 0000 ff”
“青色”
“c”
[0 1 1]
“# 00飞行符”
“红色”
“米”
[10 0 1]
“#就”
“黄色”
“y”
[11 10 0]
“# FFFF00”
“黑”
“k”
[0 0 0]
# 000000的
“白色”
' w '
[1 1 1]
“# FFFFFF”
下面是MATLAB在许多类型的图中使用的默认颜色的RGB三组和十六进制颜色代码。
RGB值 十六进制颜色代码 外观 [0 0.4470 0.7410]
“# 0072 bd”
[0.8500 0.3250 0.0980]
“# D95319”
[0.9290 0.6940 0.1250]
“# EDB120”
[0.4940 0.1840 0.5560]
“# 7 e2f8e”
[0.4660 0.6740 0.1880]
“# 77 ac30”
[0.3010 0.7450 0.9330]
“# 4 dbeee”
[0.6350 0.0780 0.1840]
“# A2142F”
例子:情节(G,“NodeColor”、“k”)
创建带有黑节点的图形图。
NodeLabel
- - - - - -节点的标签
节点id(默认)|向量|字符向量的单元格数组|字符串数组
节点标签,指定为逗号分隔的对,由“NodeLabel”
一个数字向量,字符向量的单元格数组,或者字符串数组。的长度NodeLabel
必须等于图中的节点数。默认情况下NodeLabel
是一个包含图节点的节点id的单元格数组:
对于没有名称的节点(即
G.Nodes
不包含的名字
变量),节点标签就是值独特的(G.Edges.EndNodes)
包含在单元格数组中。对于命名节点,节点标签为
G.Nodes.Name”
.
例子:{' a ', ' b ', ' c '}
例子:[1 2 3]
例子:情节(G, NodeLabel G.Nodes.Name)
用节点的名称标记节点。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
|字符串
XData
- - - - - -结点x坐标
向量
请注意
XData
而且YData
必须一起指定,以便每个节点都有一个有效的(x,y)坐标。您还可以指定ZData
获取三维坐标。
节点的x坐标,指定为逗号分隔的对,由“XData”
一个长度等于图中节点数的向量。
YData
- - - - - -节点y坐标
向量
请注意
XData
而且YData
必须一起指定,以便每个节点都有一个有效的(x,y)坐标。您还可以指定ZData
获取三维坐标。
节点的y坐标,指定为逗号分隔的对,由“YData”
一个长度等于图中节点数的向量。
ZData
- - - - - -节点z坐标
向量
请注意
XData
而且YData
必须一起指定,以便每个节点都有一个有效的(x,y)坐标。您还可以指定ZData
获取三维坐标。
节点的z坐标,指定为逗号分隔的对,由“ZData”
一个长度等于图中节点数的向量。
参考文献
[1] Fruchterman T.和E. Reingold。“通过力定向放置绘制图形。”软件-实践与经验.Vol. 21 (11), 1991, pp. 1129-1164。
[2]甘斯纳,E., E. Koutsofios, S. North, k . p Vo。画有向图的技巧IEEE软件工程汇刊.第19卷,1993,第214-230页。
[3]巴特,W.荣格尔,P.穆策尔。“简单高效的双层交叉计数。”图算法与应用杂志.Vol.8 (2), 2004, pp. 179-194。
[4]布兰德斯,U.和B.科普夫。"快速简单的水平坐标分配"信号.卷2265,2002,31-44页。
[5] Y. Koren。用特征向量画图:理论与实践计算机与数学及其应用.第49卷,2005,第1867-1888页。
版本历史
在R2015b中引入R2018a:自循环显示更改
R2018a的行为发生了变化
一个简单图形的图形中的自循环现在的形状像一片叶子或一滴眼泪。在以前的版本中,自循环显示为圆圈。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。