跳到内容

最小化二分图的简单两行(或列)布局中的边交叉。

用法

layout_as_bipartite(graph, types = NULL, hgap = 1, vgap = 1, maxiter = 100)

as_bipartite(...)

参数

graph

二分输入图。 它应该有一个逻辑“type”顶点属性,或者必须给出types参数。

types

一个逻辑向量,顶点类型。 如果此参数为NULL(默认值),则使用“type”顶点属性。

hgap

实数标量,同一层中顶点之间的最小水平间隙。

vgap

实数标量,两层之间的距离。

maxiter

整数标量,交叉最小化阶段的最大迭代次数。100 是一个合理的默认值;如果您觉得边交叉过多,请增加此值。

...

传递给layout_as_bipartite()的参数。

一个具有两列和与输入图中的顶点数一样多的行的矩阵。

详细信息

通过首先根据顶点类型将顶点放置在两行中来创建布局。 然后使用杉山算法(参见layout_with_sugiyama())优化行中的位置,以最小化边交叉。

作者

Gabor Csardi csardi.gabor@gmail.com

示例

# Random bipartite graph
inc <- matrix(sample(0:1, 50, replace = TRUE, prob = c(2, 1)), 10, 5)
g <- graph_from_biadjacency_matrix(inc)
plot(g,
  layout = layout_as_bipartite,
  vertex.color = c("green", "cyan")[V(g)$type + 1]
)


# Two columns
g %>%
  add_layout_(as_bipartite()) %>%
  plot()