绘制图节点和边
使用稀疏邻接矩阵创建一个图,然后绘制图。
n = 10;一个= delsq (numgrid (“L”、n + 2));图G = (,“omitselfloops”)
G = graph with properties: Edges: [130x2 table] Nodes: [75x0 table]
情节(G)
创建一个有向图,然后使用“力”
布局。
G =有向图(1、2:5);G = addedge (G, 2, 6:15);G = addedge(十六20 G, 15日)
G =具有属性的有向图:Edges: [19x1 table] Nodes: [20x0 table]
情节(G,“布局”,“力”)
创建一个加权图。
S = [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 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 = graph with properties: Edges: [20x2 table] Nodes: [11x0 table]
使用节点的自定义坐标绘制图。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 2 2 3 4 4 5 6];T = [2 3 4 5 3 6 6 5 7 7 7];权重= [50 10 20 80 90 90 90 30 20 100 40 60];图G = (s t权重)
G = graph with properties: Edges: [11x2 table] Nodes: [7x0 table]
绘制图形,用边的权重标记边,并使边的宽度与边的权重成比例。使用边权值的缩放版本来确定每条边的宽度,使最宽的线的宽度为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 7 8 8 8];G =有向图(s, t)
G =具有属性的有向图:Edges: [12x1 table] Nodes: [8x0 table]
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
对象。
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 =具有属性的有向图:Edges: [18x1 table] Nodes: [12x0 table]
p =情节(G)
p = GraphPlot属性:NodeColor: 0.4470 - 0.7410 [0] MarkerSize: 4标记:“o”EdgeColor:[0 0.4470 - 0.7410]线宽:0.5000线型:”——“NodeLabel: {1} x12细胞EdgeLabel: {} XData: [2.5000 2.5000 1.5000 2.5000 - 2 3 2 3 3 4 3.5000 - 2.5000] YData: [7 6 6 5 4 5 4 3 2 3 2 1] ZData:[0 0 0 0 0 0 0 0 0 0 0 0]显示所有属性
更改节点的颜色和标记。
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 2 1 1 1];
LineSpec
- - - - - -线条样式、标记符号和颜色作为符号的字符向量或字符串向量指定的行样式、标记符号和颜色。这些符号可以以任何顺序出现,并且可以省略一个或多个特征。如果省略线样式,则图将显示图形边的实线。
例子:”,或“
使用红色圆圈节点标记和红色虚线作为边。
例子:的r *
使用红色星号节点标记和实红色线作为边。
线条样式 | 描述 | 产生的线 |
---|---|---|
“- - -” |
实线 |
|
“——” |
虚线 |
|
':' |
虚线 |
|
“-”。 |
Dash-dotted线 |
|
标记 | 描述 | 产生的标志 |
---|---|---|
“o” |
圆 |
|
“+” |
加号 |
|
‘*’ |
星号 |
|
“。” |
点 |
|
“x” |
交叉 |
|
“_” |
水平线 |
|
“|” |
垂直的线 |
|
“年代” |
广场 |
|
' d ' |
钻石 |
|
“^” |
Upward-pointing三角形 |
|
“v” |
向下的三角形 |
|
“>” |
三点三角形 |
|
“<” |
只左向三角形 |
|
“p” |
五角星形 |
|
“h” |
六角星形 |
|
颜色名称 | 短名称 | RGB值 | 外观 |
---|---|---|---|
“红色” |
“r” |
(1 0 0) |
|
“绿色” |
‘g’ |
(0 1 0) |
|
“蓝” |
“b” |
(0 0 1) |
|
“青色” |
“c” |
(0 1 1) |
|
“红色” |
“米” |
(1 0 1) |
|
“黄色” |
“y” |
(1 1 0) |
|
“黑” |
“k” |
(0 0 0) |
|
“白色” |
' w ' |
(1 1 1) |
|
斧头
- - - - - -坐标轴对象坐标轴对象。如果不指定坐标轴对象,则情节
使用当前坐标轴(gca
).
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
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)
.
十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(#
),然后是3个或6个十六进制数字,其范围可以是0
来F
.这些值不区分大小写。因此,颜色是代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。
颜色名称 | 短名称 | RGB值 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
“红色” |
“r” |
(1 0 0) |
“# FF0000” |
|
“绿色” |
‘g’ |
(0 1 0) |
“# 00 ff00” |
|
“蓝” |
“b” |
(0 0 1) |
“# 0000 ff” |
|
“青色” |
“c” |
(0 1 1) |
“# 00飞行符” |
|
“红色” |
“米” |
(1 0 1) |
“#就” |
|
“黄色” |
“y” |
(1 1 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].利用相邻节点之间的引力和遥远节点之间的斥力。 |
|
“分层” |
|
|
“子” |
子空间嵌入节点布局[5].在高维嵌入子空间中绘制图节点,然后将位置投影回2-D。默认情况下,子空间维度为100或节点总数,以较小的节点为准。 |
|
“force3” |
3 d指定布局。 |
|
“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
对于节点数为100或更少的图,是否为42
对于包含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)
.
十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(#
),然后是3个或6个十六进制数字,其范围可以是0
来F
.这些值不区分大小写。因此,颜色是代码“# FF8800”
,“# ff8800”
,“# F80”
,“# f80”
是等价的。
或者,您可以通过名称指定一些常见的颜色。该表列出了已命名的颜色选项、等价的RGB三联体和十六进制颜色代码。
颜色名称 | 短名称 | RGB值 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
“红色” |
“r” |
(1 0 0) |
“# FF0000” |
|
“绿色” |
‘g’ |
(0 1 0) |
“# 00 ff00” |
|
“蓝” |
“b” |
(0 0 1) |
“# 0000 ff” |
|
“青色” |
“c” |
(0 1 1) |
“# 00飞行符” |
|
“红色” |
“米” |
(1 0 1) |
“#就” |
|
“黄色” |
“y” |
(1 1 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
- - - - - -节点的标签节点标签,指定为逗号分隔对,由“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
- - - - - -坐标的节点请注意
XData
和YData
必须同时指定,以便每个节点具有有效的(x,y)坐标。您还可以选择指定ZData
的三维坐标。
节点的x坐标,指定为由逗号分隔的对组成的“XData”
向量的长度等于图中节点的个数。
YData
- - - - - -坐标的节点请注意
XData
和YData
必须同时指定,以便每个节点具有有效的(x,y)坐标。您还可以选择指定ZData
的三维坐标。
节点的y坐标,指定为逗号分隔的节点对,由“YData”
向量的长度等于图中节点的个数。
ZData
- - - - - -z坐标的节点请注意
XData
和YData
必须同时指定,以便每个节点具有有效的(x,y)坐标。您还可以选择指定ZData
的三维坐标。
节点的z坐标,指定为逗号分隔对,由“ZData”
向量的长度等于图中节点的个数。
R2018a中行为改变
在一个简单的图形中,自循环的形状变成了叶子或泪滴的形状。在以前的版本中,自循环显示为圆圈。
T. Fruchterman和E. Reingold。“力指向放置的图形绘制。”软件-实践和经验.第21卷(11),1991,第1129-1164页。
甘斯纳,E. Koutsofios, S. North和k - p Vo。"一种绘制有向图的技术"IEEE软件工程汇刊.第19卷,1993年,214-230页。
Barth, W., M. Juenger和P. Mutzel。“简单高效的双层交叉计数。”图算法与应用学报.第2卷第2期,2004年,页179-194。
[4] Brandes, U, B. Koepf。“快速简单的水平坐标分配。”信号.2002年第2265卷,第31-44页。
[5] y科伦。用特征向量作图:理论与实践。计算机与数学应用.第49卷,2005年,页1867-1888。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。