主要内容

情节

绘制图形节点和边

描述

例子

图(G在图中绘制节点和边G

例子

图(GLineSpec设置线条样式、标记符号和颜色。例如,情节(G,“或者”)用红色圆圈表示节点,用红线表示边。

例子

图(___名称,值使用先前语法中使用任何输入参数组合的一个或多个名称-值对参数指定的其他选项。例如,情节(G,“布局”,“圆”)绘制图形的环形布局,和情节(G, XData, X, YData, Y, ZData, Z)指定了(X, Y, Z)图节点的坐标。

图(斧头___所指定的轴斧头而不是进入当前轴(gca).该选项,斧头,可以放在以前语法中任何输入参数组合的前面。

例子

h=情节(___返回一个GraphPlot对象。使用此对象检查和调整绘制图形的属性。

例子

全部折叠

使用稀疏邻接矩阵创建图,然后绘制图。

N = 10;A = delsq(numgrid(“L”、n + 2));G =图(A,“omitselfloops”
G = graph with properties:边数:[130x2 table]节点数:[75x0 table]
情节(G)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

创建并绘制图表。指定LineSpec输入以更改标记NodeColor和/或线型这个图形。

G =图(bucky);情节(G,“运作”“NodeLabel”{})

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

创建有向图,然后使用“力”布局。

G =有向图(1,2:5);G = add (G,2,6:15);G = add (G,15,16:20)
G =有向图属性:边:[19x1表]节点:[20x0表]
情节(G,“布局”“力”

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

创建一个加权图。

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)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

从上方查看图表。

视图(2)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

创建一个加权图。

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)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

创建一个有向图。用节点和边的自定义标签绘制图形。

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)

图中包含一个轴对象。axis对象包含一个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)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

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”

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

增加节点的大小。

p.MarkerSize = 7;

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

更改边缘的线条样式。

p.LineStyle =“——”

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

改变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];

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

输入参数

全部折叠

输入图形,指定为a有向图对象。使用创建无向图或有向图创建有向图。

例子:G =图(1,2)

例子:G =有向图([1 2],[2 3])

线条样式、标记符号和颜色,指定为符号的字符向量或字符串向量。这些符号可以以任何顺序出现,您可以省略一个或多个特征。如果省略线条样式,则绘图将为图形边缘显示实线。

例子:”,或“使用红色圆圈节点标记和红色虚线作为边缘。

例子:的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”一个正的点单位。的默认值ArrowSize7对于节点数为100或更少的图,和4对于有超过100个节点的图。

例子:15

边缘线的颜色数据,指定为由逗号分隔的对组成“EdgeCData”一个向量的长度等于图中的边数。中的值EdgeCData线性映射到当前颜色映射中的颜色,从而为绘制图形中的每条边生成不同的颜色。

边的颜色,指定为由逗号分隔的对组成“EdgeColor”其中一个价值观是:

  • “没有”—没有绘制边缘。

  • “平”的值决定每条边的颜色EdgeCData

  • 矩阵-每一行都是一个RGB三元组,表示一条边的颜色。矩阵的大小是numedges (G)——- - - - - -3.

  • RGB三元组、十六进制颜色代码或颜色名称-边使用指定的颜色。

    RGB三组和十六进制颜色代码对于指定自定义颜色很有用。

    • RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1];例如,[0.4 0.6 0.7]

    • 十六进制颜色码是字符向量或以散列符号()后面跟着三个或六个十六进制数字,取值范围为0F.这些值不区分大小写。因此,颜色代码“# 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”

    RGB三联体[0 0.4470 0.7410]样品,呈深蓝色

    [0.8500 0.3250 0.0980] “# D95319”

    RGB三联体样品[0.8500 0.3250 0.0980],呈暗橙色

    [0.9290 0.6940 0.1250] “# EDB120”

    RGB三联体样品[0.9290 0.6940 0.1250],呈暗黄色

    [0.4940 0.1840 0.5560] “# 7 e2f8e”

    RGB三联体样品[0.4940 0.1840 0.5560],呈深紫色

    [0.4660 0.6740 0.1880] “# 77 ac30”

    RGB三联体[0.4660 0.6740 0.1880]样本,呈现中绿色

    [0.3010 0.7450 0.9330] “# 4 dbeee”

    RGB三联体样品[0.3010 0.7450 0.9330],呈浅蓝色

    [0.6350 0.0780 0.1840] “# A2142F”

    RGB三联体样品[0.6350 0.0780 0.1840],呈暗红色

例子:情节(G,‘EdgeColor’,‘r’)创建带有红色边的图形。

边缘标签,指定为逗号分隔的对,由“EdgeLabel”一个数字向量,字符向量的单元格数组,或者字符串数组。的长度EdgeLabel必须等于图中的边数。默认情况下EdgeLabel是空单元格数组(不显示边缘标签)。

例子:{' a ', ' b ', ' c '}

例子:[1 2 3]

例子:情节(G, EdgeLabel G.Edges.Weight)用它们的权值标记图边。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|细胞|字符串

图形布局方法,指定为由逗号分隔的对组成“布局”这是表格中的一个选项。该表还列出了兼容的名称-值对,以进一步细化每个布局方法。看到布局有关这些特定于布局的名称-值对的更多信息,请参阅页面。

选项 描述 特定于布局的名称-值对
“汽车”(默认)

根据图形的大小和结构自动选择布局方法。

- - - - - -

“圆”

环形布局。将图节点放置在以原点为中心、半径为1的圆上。

“中心”—圆形布局为中心节点

“力”

指定的布局[1].在相邻节点之间使用吸引力,在遥远节点之间使用排斥力。

“迭代”-力导向布局迭代次数

“WeightEffect”-边权对布局的影响

“UseGravity”-重力切换布局与多个组件

“XStart”- - - - - -开始x节点的-坐标

“YStart”- - - - - -开始y节点的-坐标

“分层”

节点分层布局[2][3][4].将图节点放入一组层中,显示层次结构。默认情况下,图层向下发展(有向无环图的箭头指向下)。

“方向”-图层方向

“源”-第一层中包含的节点

“汇”-最后一层要包含的节点

“AssignLayers”-层分配方法

“子”

子空间嵌入节点布局[5].在高维嵌入子空间中绘制图节点,然后将位置投影回2-D。默认情况下,子空间维数是100或节点总数,以较小者为准。

“维度”-嵌入子空间的维数

“force3” 三维力定向布局。

“迭代”-力导向布局迭代次数

“WeightEffect”-边权对布局的影响

“UseGravity”-重力切换布局与多个组件

“XStart”- - - - - -开始x节点的-坐标

“YStart”- - - - - -开始y节点的-坐标

“ZStart”- - - - - -开始z节点的-坐标

“subspace3” 三维子空间嵌入布局。

“维度”-嵌入子空间的维数

例子:情节(G,“布局”,“force3”,“迭代”,10)

例子:情节(G,“布局”,“子”,“维度”,50)

例子:情节(G,“布局”,“分层”)

行样式,指定为逗号分隔的对,由“线型”和本表中列出的线条样式之一,或作为这样值的单元格数组或字符串向量。指定字符向量或字符串向量的单元格数组,以便为每条边使用不同的线条样式。

字符(年代) 线条样式 产生的线
“- - -” 实线

实线样本

“——” 虚线

虚线的样本

“:” 虚线

虚线的样本

“-”。 Dash-dotted线

虚线的示例

“没有” 没有线 没有线

边线宽度,指定为由逗号分隔的对组成“线宽”和一个正的点单位或这样的值的向量。指定一个向量,以便对图中的每条边使用不同的线宽。

例子:0.75

节点标记符号,指定为逗号分隔的对,由“标记”和本表中列出的字符向量之一,或者作为这样值的单元格数组或字符串向量。默认情况下,图形节点使用圆形标记。指定字符向量或字符串向量的单元格数组,以便为每个节点使用不同的标记。

标记 描述 产生的标志
“o”

圆形记号笔样品

“+” 加号

加号标记的样本

‘*’ 星号

星号标记样本

“。”

点标样本

“x” 交叉

十字标记样本

“_” 水平线

水平线标记样本

“|” 垂直的线

垂直线标记的样本

“年代” 广场

方形记号笔样本

' d ' 钻石

钻石线标记的样品

“^” Upward-pointing三角形

向上三角形标记的样本

“v” 向下的三角形

向下指向三角形标记的样本

“>” 三点三角形

右指向三角形标记的样本

“<” 只左向三角形

左指向三角形标记的样本

“p” 五角星形

五角星记号笔样本

“h” 六角星形

六芒标记的样本

“没有” 没有标记 不适用

例子:“+”

例子:“钻石”

节点标记的大小,由逗号分隔的对组成“MarkerSize”以点为单位的一个正的值或这些值的向量。指定一个向量,以便为图中的每个节点使用不同的标记大小。的默认值MarkerSize4是否表示节点数为100或更少的图,和2对于有超过100个节点的图。

例子:10

节点标记的颜色数据,指定为由逗号分隔的对组成“NodeCData”一个长度等于图中节点数的向量。中的值NodeCData线性映射到当前颜色图中的颜色,从而为绘制的图形中的每个节点产生不同的颜色。

节点颜色,指定为由逗号分隔的对组成“NodeColor”其中一个价值观是:

  • “没有”—未绘制节点。

  • “平”—每个节点的颜色取决于的值NodeCData

  • 矩阵-每一行是一个RGB三元组,表示一个节点的颜色。矩阵的大小是numnodes (G)——- - - - - -3.

  • RGB三元组、十六进制颜色代码或颜色名称-节点使用指定的颜色。

    RGB三组和十六进制颜色代码对于指定自定义颜色很有用。

    • RGB三元组是一个三元素行向量,其元素指定颜色的红、绿和蓝分量的强度。强度必须在这个范围内[0, 1];例如,[0.4 0.6 0.7]

    • 十六进制颜色码是字符向量或以散列符号()后面跟着三个或六个十六进制数字,取值范围为0F.这些值不区分大小写。因此,颜色代码“# 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”

    RGB三联体[0 0.4470 0.7410]样品,呈深蓝色

    [0.8500 0.3250 0.0980] “# D95319”

    RGB三联体样品[0.8500 0.3250 0.0980],呈暗橙色

    [0.9290 0.6940 0.1250] “# EDB120”

    RGB三联体样品[0.9290 0.6940 0.1250],呈暗黄色

    [0.4940 0.1840 0.5560] “# 7 e2f8e”

    RGB三联体样品[0.4940 0.1840 0.5560],呈深紫色

    [0.4660 0.6740 0.1880] “# 77 ac30”

    RGB三联体[0.4660 0.6740 0.1880]样本,呈现中绿色

    [0.3010 0.7450 0.9330] “# 4 dbeee”

    RGB三联体样品[0.3010 0.7450 0.9330],呈浅蓝色

    [0.6350 0.0780 0.1840] “# A2142F”

    RGB三联体样品[0.6350 0.0780 0.1840],呈暗红色

例子:情节(G,“NodeColor”、“k”)创建带有黑节点的图形图。

节点标签,指定为逗号分隔的对,由“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而且YData必须一起指定,以便每个节点都有一个有效的(xy)坐标。您还可以指定ZData获取三维坐标。

节点的x坐标,指定为逗号分隔的对,由“XData”一个长度等于图中节点数的向量。

请注意

XData而且YData必须一起指定,以便每个节点都有一个有效的(xy)坐标。您还可以指定ZData获取三维坐标。

节点的y坐标,指定为逗号分隔的对,由“YData”一个长度等于图中节点数的向量。

请注意

XData而且YData必须一起指定,以便每个节点都有一个有效的(xy)坐标。您还可以指定ZData获取三维坐标。

节点的z坐标,指定为逗号分隔的对,由“ZData”一个长度等于图中节点数的向量。

输出参数

全部折叠

图形图,作为对象返回。有关更多信息,请参见GraphPlot

参考文献

[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的行为发生了变化