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

how to sort the vertex according to degree in igraph layout_in_circle

当我使用 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 与名称的关系也已更改。

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

的参数

order: The vertices to place on the circle, in the order of their desired placement. Vertices that are not included here will be placed at (0,0)

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

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