r - 如何修改该图的布局?

标签 r graph igraph

我已经创建了一个图形对象,但我想自己选择布局。我想到的布局是这样的:第一个节点 Fs 放置在最左边,然后是 DCs,然后是 CC ,最后W 在最右边。我们还可以将 DCCC 放在一起。 您可以通过以下代码生成图表:

graph_from_literal(F1--+DC1, F1--+DC2, F1--+DC3, F1--+CC, F1--+W1, F1--+W2, F1--+W3,
                   F2--+DC1, F2--+DC2, F2--+DC3, F2--+CC, F2--+W1, F2--+W2, F2--+W3, 
                   DC1--+CC, DC1--+W1, DC1--+W2, DC1--+W3, 
                   DC2--+CC, DC2--+W1, DC2--+W2, DC2--+W3, 
                   DC3--+CC, DC3--+W1, DC3--+W2, DC3--+W3, 
                   CC--+W1, CC--+W2, CC--+W3)

我尝试了 plot 函数中的 layout 参数,但结果不是我想要的。如果您能提前提供帮助,我将不胜感激。

最佳答案

如果您想自定义分层图,我们可以尝试

# assign x-coordiates of vertices in terms of their names by following the desired order, i.e., from left to right
x_lo <- match(gsub("\\d", "", names(V(g))), c("F", "DC", "CC", "W"))

# assign y-coordinates uniformly within the range [-5,5] (grouped by `x_lo`), or we can also use random values if you like
y_lo <- ave(x_lo, x_lo, FUN = function(v) seq(-5, 5, length.out = length(v)))

plot(g, layout = cbind(x_lo, y_lo))

这给出了

enter image description here


另一个选项可能是使用layout_with_sugiyama

plot(g, layout = -layout_with_sugiyama(g)$layout[,2:1])

幸运的是我们会得到

enter image description here

关于r - 如何修改该图的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70869058/

相关文章:

r - 增加 R iGraph 顶点之间的空间

python - 由 n 人组成 r 组的最佳方法,但尽量减少重叠

r - ggplot2:添加一个新功能并强制它在后面

java - 从jgrapht中的节点获取所有边缘

r - 如何从边列表创建加权邻接列表/矩阵?

c++ - 无法在 igraph 上生成 igraph_degree_sequence_game

r - MLR随机森林多标签获取特征重要性

r - 如何将两个变量写入一个文本文件?

algorithm - 如何找到有向图的最大无环子图的2-近似解?

javascript - c3 图表中的图表 X 轴刻度