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