改变图形图的布局
创建并绘制一个图表“力”
布局。
S = [1 1 1 1 6 6 6 6 6];T = [2 3 4 5 6 7 8 9 10 11];图G = (s, t);h =情节(G,“布局”,“力”);
将布局更改为默认的情节
根据图的结构和属性确定。结果和使用是一样的情节(G)
.
布局(h)
创建并绘制一个图表“分层”
布局。
S = [1 1 1 2 2 3 3 4 5 5 6 7];T = [2 4 5 3 6 4 7 8 6 8 7 8];图G = (s, t);h =情节(G,“布局”,“分层”);
控件更改图形的布局“子”
方法。
布局(h,“子”)
创建并绘制一个图表“分层”
布局方法。
S = [1 1 1 2 3 3 4 4];T = [2 4 5 6 2 4 7 8 1];G =有向图(s, t);h =情节(G,“布局”,“分层”);
使用布局
函数通过指定源节点和水平方向来细化层次布局。
布局(h,“分层”,“方向”,“对”,“源”1, [4])
绘制一个包含多个组件的图,然后展示如何使用“UseGravity”
选项来改进可视化。
创建并绘制一个由150个节点分割成许多不相连组件的图。MATLAB®将图形组件置于网格上。
S = [1 3 5 7 7 10:100];T = [2 4 6 8 9 randi([10 100],1,91)];图G = (s t [], 150);h =情节(G);
更新图形对象的布局坐标,并指定“UseGravity”
作为真正的
因此,组件围绕原点呈放射状排列,为较大的组件分配更多的空间。
布局(h,“力”,“UseGravity”,真正的)
用“WeightEffect”
名称-值对,使图边的长度与它们的权值成比例。
创建并绘制带加权边的有向图。
S = [1 1 1 1 2 2 3 3 3 3 3];T = [2 4 5 6 7 3 8 9 10 11 12 13 14];Weights = randi([1 20],1,13);图G = (s t重量);p =情节(G,“布局”,“力”,“EdgeLabel”, G.Edges.Weight);
控件重新计算图形的布局“WeightEffect”
名称-值对,以便每条边的长度与其权重成比例。这使得权值最大的边是最长的边。
布局(p,“力”,“WeightEffect”,“直接”)
方法
- - - - - -布局方法“汽车”
(默认)|“圆”
|“力”
|“分层”
|“子”
|“force3”
|“subspace3”
布局方法,指定为表中的选项之一。该表还列出了兼容的名称-值对,以进一步细化每个布局方法。
选项 | 描述 | 框架名称-值对 |
---|---|---|
“汽车” (默认) |
根据图形的尺寸和结构自动选择布局方法。 |
- - - - - - |
“圆” |
环形布局。将图形节点置于以半径为1的原点为圆心的圆上。 |
|
“力” |
指定的布局[1].利用相邻节点之间的引力和遥远节点之间的斥力。 |
|
“分层” |
|
|
“子” |
子空间嵌入布局[5].在高维嵌入子空间中绘制图节点,然后将位置投影回2-D。默认情况下,子空间维度为100或节点总数,以较小的节点为准。 |
|
“force3” |
3 d指定布局。 |
|
“subspace3” |
三维子空间嵌入布局。 |
|
例子:布局(H,“分层”)
例子:布局(H,“force3”、“迭代”,10)
例子:布局(H,“子”,“维度”,50)
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
布局(H,‘子’,‘维’,200)
迭代
- - - - - -强制布局迭代次数One hundred.
(默认)|积极的标量整数强制定向布局迭代次数,指定为逗号分隔对,由“迭代”
一个正的标量整数。
此选项仅在以下情况下可用方法
是“力”
或“force3”
.
例子:布局(H,“力”,“迭代”,250年)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
WeightEffect
- - - - - -边权值对布局的影响“没有”
(默认)|“直接”
|“逆”
边权值对布局的影响,指定为由逗号分隔的对组成“WeightEffect”
和这个表中的一个值。如果两个节点之间有多条边(如在每个方向都有一条边的有向图或多重图中),则在计算前将权值相加“WeightEffect”
.
此选项仅在以下情况下可用方法
是“力”
或“force3”
.
价值 |
描述 |
---|---|
|
边的权重不影响布局。 |
|
边的长度与边的权重成正比, |
|
边长与边长权重成反比, |
例子:布局(H,‘力’,‘WeightEffect’,“逆”)
UseGravity
- - - - - -重力切换布局与多个组件“关闭”
或假
(默认)|“上”
或真正的
重力切换用于带有多个组件的布局,指定为逗号分隔对组成“UseGravity”
,要么“关闭”
,“上”
,真正的
,或假
.的值“上”
相当于真正的
,“关闭”
相当于假
.
默认情况下,MATLAB®在网格上布局具有多个组件的图。网格可以掩盖较大组件的细节,因为它们被给予与较小组件相同的空间。与“UseGravity”
设置为“上”
或真正的
,多个分量会围绕原点呈放射状分布。这种布局以一种更自然的方式展开组件,并为更大的组件提供更多空间。
此选项仅在以下情况下可用方法
是“力”
或“force3”
.
例子:布局(H,‘力’,‘UseGravity’,真的)
数据类型:字符
|逻辑
XStart
- - - - - -开始节点的x坐标节点的起始x坐标,指定为逗号分隔对,由“XStart”
和一个节点坐标向量。将此选项与“YStart”
指定二维起始坐标(或用“YStart”
和“ZStart”
来指定三维开始坐标),然后力向算法的迭代会改变节点位置。
此选项仅在以下情况下可用方法
是“力”
或“force3”
.
例子:布局(H,‘力’,‘XStart’,x, YStart, y)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
YStart
- - - - - -节点的起始y坐标节点的起始y坐标,指定为逗号分隔的对,由“YStart”
和一个节点坐标向量。将此选项与“XStart”
指定二维起始坐标(或用“XStart”
和“ZStart”
来指定三维开始坐标),然后力向算法的迭代会改变节点位置。
此选项仅在以下情况下可用方法
是“力”
或“force3”
.
例子:布局(H,‘力’,‘XStart’,x, YStart, y)
例子:布局(H,‘力’,‘XStart’,x, YStart, y, ZStart, z)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ZStart
- - - - - -开始节点的z坐标节点的起始z坐标,指定为逗号分隔的对,由“ZStart”
和一个节点坐标向量。将此选项与“XStart”
和“YStart”
要指定起始x,y,z在力定向算法迭代改变节点位置之前,节点坐标。
此选项仅在以下情况下可用方法
是“force3”
.
例子:布局(H,‘力’,‘XStart’,x, YStart, y, ZStart, z)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
方向
- - - - - -层的方向“下来”
(默认)|“了”
|“左”
|“对”
层的方向,指定为逗号分隔对组成“方向”
,要么“下来”
,“了”
,“左”
或“对”
.对于有向无环(DAG)图,箭头指向指示的方向。
此选项仅在以下情况下可用方法
是“分层”
.
例子:布局(H,“分层”,“方向”、“了”)
来源
- - - - - -要包含在第一层中的节点要包含在第一层中的节点,指定为由逗号分隔的对组成“源”
以及一个或多个节点索引或节点名。
该表显示了通过数字节点索引或节点名引用一个或多个节点的不同方法。
形式 | 单独的节点 | 多个节点 |
---|---|---|
节点索引 | 标量 例子: |
向量 例子: |
节点名称 | 特征向量 例子: |
字符向量的单元格数组 例子: |
字符串标量 例子: |
字符串数组 例子: |
此选项仅在以下情况下可用方法
是“分层”
.
例子:布局(H,“分层”,“来源”,[1 3 5])
汇
- - - - - -要包含在最后一层中的节点要包含在最后一层中的节点,指定为由逗号分隔的对组成“汇”
以及一个或多个节点索引或节点名。
此选项仅在以下情况下可用方法
是“分层”
.
例子:布局(H,“分层”,“下沉”,[2 4 6])
AssignLayers
- - - - - -层赋值方法“汽车”
(默认)|“尽快”
|“阿拉普”
层赋值方法,指定为逗号分隔对组成“AssignLayers”
这张表中有一个选项。
选项 | 描述 |
---|---|
“汽车” (默认) |
节点分配使用“尽快” 或“阿拉普” ,以更紧凑的为准。 |
“尽快” |
尽快。每个节点都被分配到第一个可能的层,因为它的所有前任都必须在更早的层中。 |
“阿拉普” |
越晚越好。每个节点都被分配到最后一个可能的层,因为它的所有后继节点都必须在后面的层中。 |
此选项仅在以下情况下可用方法
是“分层”
.
例子:布局(H,“分层”,“AssignLayers”,“阿拉普”)
维
- - - - - -嵌入子空间的维数嵌入子空间的维数,指定为逗号分隔对,由“维度”
一个正的标量整数。
缺省值为分钟([100年numnodes (G)))
.
为“子”
布局中,整数必须大于等于2。
为“subspace3”
布局中,整数必须大于等于3。
在这两种情况下,整数必须小于节点数。
此选项仅在以下情况下可用方法
是“子”
或“subspace3”
.
例子:布局(H,‘子’,‘维’,d)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
中心
- - - - - -圆形布局的中心节点圆形布局中的中心节点,指定为逗号分隔的对,由“中心”
和这个表中的一个值。
价值 | 例子 |
---|---|
标量节点索引 | 1 |
字符向量节点名 | “一个” |
字符串标量节点名 | “一个” |
此选项仅在以下情况下可用方法
是“圆”
.
例子:布局(H,“圆”,“中心”,3)
把节点3放在中心。
例子:布局(H,“圆”,“中心”、“Node1”)
放置名为“Node1”
的中心。
使用布局
名称-值对,以在绘制图形时更改其布局。例如,情节(G,“布局”,“圆”)
块图G
以圆形布局。
当使用“力”
或“force3”
布局方法,最好的做法是使用更多的迭代算法而不是使用XStart
,YStart
,ZStart
使用以前的输出重新启动算法。执行100次迭代的算法与执行50次迭代,然后从结束位置重新启动算法再执行50次迭代的结果是不同的。
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命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。