跳到内容

此函数尝试基于一个简单的算法自动为图选择合适的图布局算法。详见下文。

用法

layout_nicely(graph, dim = 2, ...)

nicely(...)

参数

graph

输入图

dim

维度,应为 2 或 3。

...

对于 layout_nicely(),额外的参数会传递给真正的布局函数。对于 nicely(),所有参数都会传递给 layout_nicely()

一个两列或三列的数字矩阵。

详细信息

layout_nicely() 尝试为提供的图选择合适的布局函数,并使用它来生成布局。当前的实现方式如下

  1. 如果图有一个名为 ‘layout’ 的图属性,则使用此属性。 如果此属性是一个 R 函数,则会调用它,使用图和任何其他额外参数。

  2. 否则,如果图具有名为 ‘x’ 和 ‘y’ 的顶点属性,则将这些用作坐标。 如果图具有额外的 ‘z’ 顶点属性,也会使用该属性。

  3. 否则,如果图是一个森林且顶点数少于 30 个,则使用 layout_as_tree()

  4. 否则,如果图是连通的且顶点数少于 1000 个,则通过调用 layout_with_fr() 来使用 Fruchterman-Reingold 布局。

  5. 否则,使用 DrL 布局,调用 layout_with_drl()

在布局算法实现中,一个名为 ‘weights’ 的参数通常用于指定边的权重(如果布局算法支持)。 在这种情况下,省略 ‘weights’ 或将其设置为 NULL 将使 igraph 使用图中的 'weight' 边属性(如果存在)。 但是,大多数布局算法不支持非正权重,因此如果您在未指定显式权重的情况下简单地在图上调用 layout_nicely() 并且权重恰好包含非正数,则 layout_nicely() 将失败。 我们努力确保 layout_nicely() 可以直接用于大多数图,因此规则是,如果您省略 ‘weights’ 或将其设置为 NULL 并且 layout_nicely() 最终会调用 layout_with_fr()layout_with_drl(),我们不会将权重转发给这些函数,并且会发出警告。 您可以使用 weights = NA 来消除警告。

作者

Gabor Csardi csardi.gabor@gmail.com