R igraph 手册页

如果您从 R 中使用 igraph,请使用此选项

layout_as_tree {igraph}R 文档

Reingold-Tilford 图布局算法

描述

一种树状布局,非常适合树,对于循环不太多的图也可以接受。

用法

layout_as_tree(
  graph,
  root = numeric(),
  circular = FALSE,
  rootlevel = numeric(),
  mode = c("out", "in", "all"),
  flip.y = TRUE
)

as_tree(...)

参数

输入图。

root

根顶点或根顶点的索引。如果这是一个非空向量,那么提供的顶点 ID 将被用作树的根(或者如果图是连通的,则是一棵树)。如果它是一个空向量,那么根顶点将基于拓扑排序自动计算,拓扑排序执行的模式与 mode 参数相反。在顶点排序之后,从每个组件中选择一个。

circular

逻辑标量,是否以圆形方式绘制树。默认为 FALSE,因此树枝是自下而上(或自上而下,请参见 flip.y 参数。

rootlevel

当绘制不是树的森林(即它们是不连通的并且具有树组件)时,此参数可能很有用。它指定森林中每棵树的根顶点的级别。只有在 roots 参数不是空向量时才考虑它。

模式

指定在构建树时要考虑哪些边。 如果是 “out”,则仅考虑父节点的传出边;如果是 “in”,则仅考虑传入边。 如果是 “all”,则使用所有边(这是 igraph 0.5 及更早版本中的行为)。 如果未给出根顶点,则此参数还会影响根顶点的计算方式。 请参见 roots 参数。

flip.y

逻辑标量,是否翻转“y”坐标。 默认值为翻转,因为这会将根顶点放在顶部。

...

传递给 layout_as_tree

详细信息

将节点排列在一棵树中,其中给定的节点用作根。 树向下定向,父节点位于其子节点的中心上方。 有关确切的算法,请参见下面的参考。

如果给定的图不是树,则首先执行广度优先搜索以获得可能的生成树。

一个具有两列的数字矩阵,每个顶点对应一行。

作者

Tamas Nepusz ntamas@gmail.com 和 Gabor Csardi csardi.gabor@gmail.com

参考

Reingold, E 和 Tilford, J (1981). Tidier drawing of trees. IEEE Trans. on Softw. Eng., SE-7(2):223–228.

参见

其他图布局: add_layout_(), component_wise(), layout_as_bipartite(), layout_as_star(), layout_in_circle(), layout_nicely(), 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(), layout_(), merge_coords(), norm_coords(), normalize()

示例


tree <- make_tree(20, 3)
plot(tree, layout=layout_as_tree)
plot(tree, layout=layout_as_tree(tree, flip.y=FALSE))
plot(tree, layout=layout_as_tree(tree, circular=TRUE))

tree2 <- make_tree(10, 3) + make_tree(10, 2)
plot(tree2, layout=layout_as_tree)
plot(tree2, layout=layout_as_tree(tree2, root=c(1,11),
                                           rootlevel=c(2,1)))

[包 igraph 版本 1.3.5 索引]