R中igraph的R倒数边

时间:2011-04-19 04:17:30

标签: r graph nodes bidirectional igraph

我正在使用R中的图形。我目前正在使用igraph,我希望能够绘制双向边缘和#34;倒数边缘"图表。到目前为止,我已经看到可以绘制"双向"图形但不是倒数边缘,例如:E(1,3)和E(3,1)可能表示为双向边缘< - >,而是我想绘制两个平行边缘,一个指向另一个||的反方向。 Rgraphviz中存在一个选项,用于绘制" plot(rEG,recipEdges =" distinct")"这样做,但我更喜欢igraph上的情节。提前谢谢。

2 个答案:

答案 0 :(得分:5)

igraph中,您可以使用边缘属性curved来弯曲所需的边缘。

例如,这是一个基于图的小邻接矩阵:

library("igraph")
adj <- matrix(c(
    0,1,1,
    1,0,1,
    0,0,0),3,3,byrow=TRUE)

library("igraph")
G <- graph.adjacency(adj)

节点0和1之间的边缘是双向的(实际上,它不是,它是两条边,它们看起来像是双向边缘,因为它们是直的)。:

plot(G)

要更改此设置,我们可以使用edgelist:

E <- t(apply(get.edgelist(G),1,sort))

E(G)$curved <- 0
E(G)[duplicated(E) | duplicated(E,fromLast =TRUE)]$curved <- 0.2

plot(G)

另一个选项是我的包,这是默认行为:

library("qgraph")
qgraph(adj)

可以使用bidirectional参数进行抑制。

答案 1 :(得分:2)

试试plot(graph, edge.curved=TRUE)。它肯定适用于igraph 0.6,它也可以在igraph 0.5.4中工作(不确定何时添加)。