布局
改变图形的布局
描述
例子
基于结构的图形布局
控件创建并绘制图形“力”
布局。
S = [1 1 1 1 1 6 6 6 6 6 6];T = [2 3 4 5 6 7 8 9 10 11];G =图(s,t);h = plot(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 = plot(G,“布局”,“分层”);
方法更改图形的布局以使用“子”
方法。
布局(h,“子”)
改进图形的布局方法
控件创建并绘制图形“分层”
布局方法。
S = [1 1 1 2 3 3 3 4 4];T = [2 4 5 6 2 4 7 8 1];G =有向图(s,t);h = plot(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 = graph(s,t,[],150);h = plot(G);
更新图形对象的布局坐标,并指定“UseGravity”
作为真正的
因此,组件是围绕原点径向布局的,为较大的组件分配更多的空间。
布局(h,“力”,“UseGravity”,真正的)
基于边权的图形布局
方法绘制图形“WeightEffect”
名称-值对,使图边的长度与其权重成比例。
创建并绘制带有加权边的有向图。
S = [1 1 1 1 1 2 2 2 3 3 3 3 3 3];T = [2 4 5 6 7 3 8 9 10 11 12 13 14];权重= randi([1 20],1,13);G =图(s,t,权重);p = plot(G,“布局”,“力”,“EdgeLabel”, G.Edges.Weight);
方法重新计算图形的布局“WeightEffect”
使每条边的长度与其权值成正比。这使得权值最大的边是最长的边。
布局(p,“力”,“WeightEffect”,“直接”)
输入参数
方法
- - - - - -布局方法
“汽车”
(默认)|“圆”
|“力”
|“分层”
|“子”
|“force3”
|“subspace3”
布局方法,指定为表中的选项之一。该表还列出了兼容的名称-值对,以进一步细化每个布局方法。
选项 | 描述 | 特定于布局的名称-值对 |
---|---|---|
“汽车” (默认) |
根据图形的大小和结构自动选择布局方法。 |
- - - - - - |
“圆” |
环形布局。将图节点放置在以原点为中心、半径为1的圆上。 |
|
“力” |
指定的布局[1].在相邻节点之间使用吸引力,在遥远节点之间使用排斥力。 |
|
“分层” |
分层布局[2],[3],[4].将图节点放入一组层中,显示层次结构。默认情况下,图层向下发展(有向无环图的箭头指向下)。 |
|
“子” |
子空间嵌入布局[5].在高维嵌入子空间中绘制图节点,然后将位置投影回2-D。默认情况下,子空间维数是100或节点总数,以较小者为准。 |
|
“force3” |
三维力定向布局。 |
|
“subspace3” |
三维子空间嵌入布局。 |
|
例子:布局(H,“分层”)
例子:布局(H,“force3”、“迭代”,10)
例子:布局(H,“子”,“维度”,50)
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:布局(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”
来指定2-D起始坐标(或使用“YStart”
而且“ZStart”
来指定三维起始坐标),然后力定向算法的迭代才会改变节点位置。
仅当方法
是“力”
或“force3”
.
例子:布局(H,‘力’,‘XStart’,x, YStart, y)
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
YStart
- - - - - -从节点的y坐标开始
向量
节点的起始y坐标,指定为逗号分隔的对,由“YStart”
一个节点坐标的向量。与一起使用此选项“XStart”
来指定2-D起始坐标(或使用“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
使用以前的输出重新启动算法。与执行50次迭代相比,执行100次迭代的算法的结果是不同的,然后从结束位置重新启动算法以执行50次迭代。
参考文献
[1] T.弗鲁克曼和E.莱因戈尔德。“通过力定向放置绘制图形。”软件-实践与经验.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页。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。