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

pen*_*chy 3 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

Tam*_*más 7

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

order:按照所需位置的顺序放置在圆上的顶点.此处未包含的顶点将放置在(0,0)

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

> layout <- layout_in_circle(g, order=order(degree(g)))
> plot(g, layout=layout)
Run Code Online (Sandbox Code Playgroud)