答案 0 :(得分:1)
根据提供的数据(评论中的链接),这个答案已经完全重新修改。此外,您似乎实际上有6个社区,而不是5个。
我将使用您提供的数据并从您的代码开始
有一些小的变化。您使用qgraph
包,我会
坚持igraph
。您还可以使用创建布局
qgraph.layout.fruchtermanreingold
。我会用layout_with_lgl
来自igraph。否则,我的起点就是你的代码。
library(igraph)
load("temp/networkplot_so.RData")
col=c("#5150a7","#c3200f","#ed9718","#017acb","#FFC0CB","#9c9bd5")
set.seed(1234)
lay = layout_with_lgl(g)
plot(g,layout=lay,vertex.color=col[V(g)$community],
vertex.label =NA, vertex.size= 2)
获得更有用的演示文稿的方法是从现有的开始 布局和移动的东西。我们希望能够看到不同的东西 社区,但它们在中心都相互重叠。 为了解决这个问题,我们将每个社区从一个不同的中心移开 方向(除了我们在中间留下的最大的集群)。 首先,我想了解移动集群的数量。
summary(lay)
V1 V2
Min. :-2871 Min. :-6293
1st Qu.: 1710 1st Qu.: 2344
Median : 2411 Median : 3541
Mean : 3108 Mean : 3285
3rd Qu.: 4300 3rd Qu.: 4397
Max. :15712 Max. : 8500
这显示了点数在均值附近变化的程度。由此, 我猜我们应该将集群移动大约7000个单位。 尝试7000后,我调整了数字,使它更好一点。 经过我的调整,这是我结束的地方。
LO2 = lay
LO2[V(g)$community == 1,1] = LO2[V(g)$community == 1,1] + 10000
LO2[V(g)$community == 2,2] = LO2[V(g)$community == 2,2] - 7000
LO2[V(g)$community == 3,1] = LO2[V(g)$community == 3,1] - 10000
LO2[V(g)$community == 4,2] = LO2[V(g)$community == 4,2] + 7000
LO2[V(g)$community == 5,1] = LO2[V(g)$community == 5,1] + 6000
LO2[V(g)$community == 5,2] = LO2[V(g)$community == 5,2] + 5000
plot(g,layout=LO2,vertex.color=col[V(g)$community],
vertex.label =NA, vertex.size= 2)
legend("bottomleft", legend=1:6, pch=20, cex=0.5, col=col)
您可以看到每个社区。它看起来像第6组 真的是的核心。其他较小的组连接到6, 但彼此并没有那么多。你可能想调整一下 布局不同以强调其他关系,但是 这应该是一个好的开始。