На основании предоставленных данных (ссылка в комментариях) этот ответ был полностью переработан.Кроме того, похоже, что у вас действительно было 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, но не так много друг с другом.Возможно, вы захотите изменить макет по-другому, чтобы подчеркнуть другие отношения, но это должно стать хорошим началом.