2016-01-25 16 views
6

Grafiği kendi toplulukları/kümeleri halinde daraltmak istiyorum. Bunu şu örnekle açıklayayım:Igraf içinde gruplara göre daraltma grafiği

set.seed(123) 

#toy graph 
g <- barabasi.game(10) %>% 
    as.undirected() 

#identify communities 
c_g <- fastgreedy.community(g) 

Aşağıdaki grafikte görüldüğü gibi üç topluluk vardır.

enter image description here

ben sonuçlanan Grafikteki köşe önceki köşe üyeliğine uygun çöküşten köşe azaltmak istiyoruz. Grafiğe bakınız.

enter image description here

Ben igraph paketine yeniyim ve ben igraph nesneler ile ilgili en iyi yolu aşina değilim.

cevap

8

Sen contract deneyebilirsiniz:

library(igraph) 
set.seed(123) 
g <- barabasi.game(10) %>% as.undirected() 
c_g <- fastgreedy.community(g) 
V(g)$name <- letters[1:vcount(g)] 

g2 <- contract(g, membership(c_g), vertex.attr.comb=toString) 

par(mfrow=c(1,2)) 
plot(g, vertex.color=membership(c_g)) 
plot(simplify(g2), vertex.color=1:vcount(g2)) 

enter image description here

İlgili konular