如何根据igraph layout_in_circle中的度数对顶点进行排序

时间:2016-07-12 08:11:43

标签: r igraph graph-visualization

当我使用igraph显示网络时:

dt1 <- data.frame(v1=sample(letters[1:10],20,replace=TRUE),
                  v2=sample(letters[1:10],20,replace=TRUE))
g<-graph.data.frame(dt1, directed=F)
plot(g,layout=layout_in_circle)

enter image description here

我想按照度数递减的顺序绘制顶点。我怎样才能做到这一点? 我使用degree(g)获取学位信息。但是,绘制的节点的顺序是根据 g 对象中的内部顺序,即索引号。如果使用V(g)$name <-指定节点名称,则名称已更改,但名称关系的ID也已更改。

1 个答案:

答案 0 :(得分:7)

请阅读layout_in_circle的文件(即在R中输入help(layout_in_circle));它说该函数有一个名为order的参数:

  

order :按照它们的顺序放置在圆上的顶点             想要的位置。此处未包含的顶点将             放在(0,0)

因此,您需要做的就是使用R中的order()函数基于顶点的度数创建一个顺序向量,然后将其传递给order参数以创建布局:

> layout <- layout_in_circle(g, order=order(degree(g)))
> plot(g, layout=layout)