DrL 是一个力导向图布局工具箱,专注于真实世界的大规模图,由 Shawn Martin 及其在桑迪亚国家实验室的同事开发。
参数
- graph
输入图,可以是无向图或有向图。
- use.seed
逻辑标量,是否使用
seed
参数中给出的坐标作为起点。- seed
一个两列的矩阵,如果
use.seed
为TRUE
,则表示顶点的起始坐标。否则,它将被忽略。- options
布局生成器的选项,一个命名列表。请参见下面的详细信息。
- weights
边的权重。它必须是一个正数值向量,
NULL
或NA
。如果它是NULL
并且输入图具有 ‘weight’ 边属性,则将使用该属性。如果为NULL
并且不存在此类属性,则边将具有相等的权重。如果该图具有 ‘weight’ 边属性,但您不希望将其用于布局,请将其设置为NA
。较大的边权重对应于更强的连接。- dim
‘2’ 或 ‘3’,它指定我们是需要二维还是三维布局。请注意,由于 DrL 算法的性质,三维布局需要更长的时间来计算。
- ...
传递给
layout_with_drl()
。
详细信息
此函数实现了力导向 DrL 布局生成器。
生成器具有以下参数
- edge.cut
边缘切割在算法的后期阶段进行,以实现密度较低的布局。如果边缘上存在很大压力(目标函数总和中的大值),则会切割边缘。边缘切割参数是 0 到 1 之间的值,其中 0 表示没有边缘切割,1 表示最大边缘切割。
- init.iterations
第一阶段的迭代次数。
- init.temperature
起始温度,第一阶段。
- init.attraction
吸引力,第一阶段。
- init.damping.mult
阻尼,第一阶段。
- liquid.iterations
迭代次数,液态阶段。
- liquid.temperature
起始温度,液态阶段。
- liquid.attraction
吸引力,液态阶段。
- liquid.damping.mult
阻尼,液态阶段。
- expansion.iterations
迭代次数,扩展阶段。
- expansion.temperature
起始温度,扩展阶段。
- expansion.attraction
吸引力,扩展阶段。
- expansion.damping.mult
阻尼,扩展阶段。
- cooldown.iterations
迭代次数,冷却阶段。
- cooldown.temperature
起始温度,冷却阶段。
- cooldown.attraction
吸引力,冷却阶段。
- cooldown.damping.mult
阻尼,冷却阶段。
- crunch.iterations
迭代次数,挤压阶段。
- crunch.temperature
起始温度,挤压阶段。
- crunch.attraction
吸引力,挤压阶段。
- crunch.damping.mult
阻尼,挤压阶段。
- simmer.iterations
迭代次数,煨炖阶段。
- simmer.temperature
起始温度,煨炖阶段。
- simmer.attraction
吸引力,煨炖阶段。
- simmer.damping.mult
阻尼,煨炖阶段。
还有五个预定义的参数设置,分别称为 drl_defaults$default
、drl_defaults$coarsen
、drl_defaults$coarsest
、drl_defaults$refine
和 drl_defaults$final
。
参考文献
请参见以下技术报告:Martin, S., Brown, W.M., Klavans, R., Boyack, K.W., DrL: Distributed Recursive (Graph) Layout. SAND Reports, 2008. 2936: p. 1-10。
参见
有关其他布局生成器,请参见 layout()
。
作者
Shawn Martin (http://www.cs.otago.ac.nz/homepages/smartin/) 和 Gabor Csardi csardi.gabor@gmail.com 开发了 R/igraph 接口和三维版本。
示例
g <- as_undirected(sample_pa(100, m = 1))
l <- layout_with_drl(g, options = list(simmer.attraction = 0))
plot(g, layout = l, vertex.size = 3, vertex.label = NA)