2017-01-28 7 views
1

Я создал график и использовал алгоритм обнаружения сообщества распространенных меток для обнаружения подгрупп на графике. Затем я построил график и покрасил вершины в соответствии с их членством в группе, используя цвета радуги. Вот код, который я использовал:Как окрасить края в кластеры сообщества в igraph

g <- watts.strogatz.game(1, 100, 5, 0.05) 
clp <- cluster_label_prop(g) 
V(g)$community <- clp$membership 
rain <- rainbow(14, alpha=.5) 
V(g)$color <- rain[V(g)$community] 
plot(g, vertex.size=4, vertex.label=NA) 

Теперь я хотел бы, чтобы цвет края, которые лежат между членами подгруппы в том же цвете, как эта подгруппа, для того, чтобы лучше выделить в пределах-группы связей. Я хотел бы оставить межгрупповые связи серыми. Я не могу понять, как это сделать, помощь будет очень признательна.

Благодаря

ответ

1

должно работать:

library(igraph) 
g <- watts.strogatz.game(1, 100, 5, 0.05) 
clp <- cluster_label_prop(g) 
V(g)$community <- clp$membership 
rain <- rainbow(14, alpha=.5) 
V(g)$color <- rain[V(g)$community] 

E(g)$color <- apply(as.data.frame(get.edgelist(g)), 1, 
       function(x) ifelse(V(g)$community[x[1]] == V(g)$community[x[2]], 
            rain[V(g)$community[x[1]]], '#00000000')) 
plot(g, vertex.size=4, vertex.label=NA, edge.color=E(g)$color) 

enter image description here

+0

очень хорошо спасибо! – JRO

+0

Вы больше всего любите @JRO –