跳到内容

基于物理弹簧模型将顶点放置在平面或 3D 空间中。

用法

layout_with_kk(
  graph,
  coords = NULL,
  dim = c(2, 3),
  maxiter = 50 * vcount(graph),
  epsilon = 0,
  kkconst = max(vcount(graph), 1),
  weights = NULL,
  minx = NULL,
  maxx = NULL,
  miny = NULL,
  maxy = NULL,
  minz = NULL,
  maxz = NULL,
  niter = deprecated(),
  sigma = deprecated(),
  initemp = deprecated(),
  coolexp = deprecated(),
  start = deprecated()
)

with_kk(...)

参数

graph

输入图。 边方向被忽略。

坐标

如果不是 NULL,则起始坐标应在此处给出,以两列或三列矩阵形式,具体取决于 dim 参数。

dim

整数标量,2 或 3,布局的维度。二维布局放置在平面上,三维布局放置在 3D 空间中。

maxiter

要执行的最大迭代次数。 算法可能会提前终止,请参阅 epsilon 参数。

epsilon

数值标量,如果最大增量小于此值,则算法终止。(有关增量的含义,请参见下面的参考。)如果将其设置为零,则函数始终执行 maxiter 迭代。

kkconst

数值标量,Kamada-Kawai 顶点吸引常数。 典型(和默认)值为顶点数。

weights

边权重,较大的值将导致较长的边。 请注意,这与 layout_with_fr() 相反,后者为较大的权重产生较短的边。 权重必须为正数。

minx

如果不是 NULL,则它必须是一个数值向量,为顶点的“x”坐标提供下限。 向量的长度必须与图中的顶点数匹配。

maxx

类似于 minx,但给出了上限。

miny

类似于 minx,但给出了“y”坐标的下限。

maxy

类似于 minx,但给出了“y”坐标的上限。

minz

类似于 minx,但给出了“z”坐标的下限。

maxz

类似于 minx,但给出了“z”坐标的上限。

niter, sigma, initemp, coolexp

[已弃用] 从 igraph 版本 0.8.0 开始不支持这些参数,并且会被忽略(并发出警告)。

start

为了兼容性,已弃用的 coords 同义词。

...

传递给 layout_with_kk()

具有两列 (dim=2) 或三列 (dim=3) 的数值矩阵,并且行数与顶点数一样多,即顶点的 x、y 和可能的 z 坐标。

详细信息

有关该算法的详细信息,请参见引用的论文。

此函数已在 igraph 版本 0.8.0 中从头开始重写,现在忠实地遵循了 Kamada 和 Kawai 的原始出版物。

参考文献

Kamada, T. and Kawai, S.: 用于绘制通用无向图的算法。信息处理快报, 31/1, 7–15, 1989.

作者

Gabor Csardi csardi.gabor@gmail.com

示例


g <- make_ring(10)
E(g)$weight <- rep(1:2, length.out = ecount(g))
plot(g, layout = layout_with_kk, edge.label = E(g)$weight)