此函数尝试基于一个简单的算法自动为图选择合适的图布局算法。详见下文。
详细信息
layout_nicely()
尝试为提供的图选择合适的布局函数,并使用它来生成布局。当前的实现方式如下
如果图有一个名为 ‘layout’ 的图属性,则使用此属性。 如果此属性是一个 R 函数,则会调用它,使用图和任何其他额外参数。
否则,如果图具有名为 ‘x’ 和 ‘y’ 的顶点属性,则将这些用作坐标。 如果图具有额外的 ‘z’ 顶点属性,也会使用该属性。
否则,如果图是一个森林且顶点数少于 30 个,则使用
layout_as_tree()
。否则,如果图是连通的且顶点数少于 1000 个,则通过调用
layout_with_fr()
来使用 Fruchterman-Reingold 布局。否则,使用 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
来消除警告。
参见
其他图布局:add_layout_()
, component_wise()
, layout_()
, layout_as_bipartite()
, layout_as_star()
, layout_as_tree()
, layout_in_circle()
, layout_on_grid()
, layout_on_sphere()
, layout_randomly()
, layout_with_dh()
, layout_with_fr()
, layout_with_gem()
, layout_with_graphopt()
, layout_with_kk()
, layout_with_lgl()
, layout_with_mds()
, layout_with_sugiyama()
, merge_coords()
, norm_coords()
, normalize()
作者
Gabor Csardi csardi.gabor@gmail.com