R - igraph隐藏了具有倒置源和凹顶点的边缘

时间:2015-04-25 04:02:43

标签: r graph igraph

我需要绘制一个图形,其中所有边缘都很容易被发现(有标签),但“igraph”包完全重叠连接两个顶点的边,但不共享源和接收器。

这是一个例子。我发现layout.circle非常有用,因为我需要修复图形的顶点。

library("igraph")
Edges <- data.frame(from = c(1, 2, 2, 2, 3, 3),
                    to   = c(2, 1, 3, 3, 1, 1))
g <- graph.edgelist(as.matrix(Edges))
plot(g, layout = layout.circle(g, params = list(root = 1)), 
     edge.label = letters[1:6])

如您所见,边缘#1和#2完全重叠。 我尝试使用edge.curved选项,但结果同样令人失望:

plot(g, layout = layout.circle(g, params = list(root = 1)), edge.label = letters[1:6],
 edge.curved = TRUE)

现在有两对边缘重叠,它们无法识别。 你知道有什么方法可以帮助我吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

问题似乎与使用edge.curved函数计算边缘曲率的autocurve.edges参数有关。显然这不能正确识别你的情况。您可以选择提供自己的曲率集,以便尝试以下内容:

E(g)$label <- letters[1:6]
edges_undir <- t(apply(get.edgelist(g), 1, range))
curves <- unlist(lapply( split(E(g)$label, list(edges_undir[,1], edges_undir[,2])),
                     function(x) { seq(0,.5, length.out=length(x))}))

plot(g, layout = layout.circle(g, params = list(root = 1)), edge.label=E(g)$label, 
     edge.curved = curves)

给出了情节

enter image description here