主要内容

情节

绘制图节点和边

描述

例子

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

例子

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

例子

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

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

例子

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

例子

全部折叠

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

n = 10;一个= delsq (numgrid (“L”、n + 2));图G = (,“omitselfloops”
G = graph with properties: Edges: [130x2 table] Nodes: [75x0 table]
情节(G)

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

创建并绘制图表。指定LineSpec输入更改标记NodeColor和/或线型图的图象。

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

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

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

G =有向图(1、2:5);G = addedge (G, 2, 6:15);G = addedge(十六20 G, 15日)
G =具有属性的有向图:Edges: [19x1 table] Nodes: [20x0 table]
情节(G,“布局”“力”

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

创建一个加权图。

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)

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

从上面看这个图表。

视图(2)

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

创建一个加权图。

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)

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

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

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)

图中包含一个轴对象。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 =具有属性的有向图:Edges: [18x1 table] Nodes: [12x0 table]
p =情节(G)

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

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”

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

增加节点的大小。

p.MarkerSize = 7;

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

改变边缘的线条样式。

p.LineStyle =“——”

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

改变xy节点的坐标。

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

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

输入参数

全部折叠

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

例子:图G =(1、2)

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

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

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

例子:的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”以点为单位是正的。的默认值ArrowSize7对于包含100或更少节点的图,并且4对于包含100多个节点的图。

例子:15

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

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

  • “没有”-没有绘制边。

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

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

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

    RGB三联体和十六进制颜色代码在指定自定义颜色时很有用。

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

    • 十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(),然后是3个或6个十六进制数字,其范围可以是0F.这些值不区分大小写。因此,颜色是代码“# 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”

    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” 3 d指定布局。

“迭代”-强制布局迭代次数

“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”在点的单位中是一个正的值或者是一个这样的向量。为图中的每个节点指定一个使用不同标记大小的向量。的默认值MarkerSize对于节点数为100或更少的图,是否为42对于包含100多个节点的图。

例子:10

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

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

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

  • “平”—每个节点的颜色由值决定NodeCData

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

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

    RGB三联体和十六进制颜色代码在指定自定义颜色时很有用。

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

    • 十六进制颜色代码是以哈希符号开头的字符向量或字符串标量(),然后是3个或6个十六进制数字,其范围可以是0F.这些值不区分大小写。因此,颜色是代码“# 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”

    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|细胞|字符串

请注意

XDataYData必须同时指定,以便每个节点具有有效的(xy)坐标。您还可以选择指定ZData的三维坐标。

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

请注意

XDataYData必须同时指定,以便每个节点具有有效的(xy)坐标。您还可以选择指定ZData的三维坐标。

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

请注意

XDataYData必须同时指定,以便每个节点具有有效的(xy)坐标。您还可以选择指定ZData的三维坐标。

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

输出参数

全部折叠

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

兼容性的考虑

全部展开

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。

介绍了R2015b