2016-01-25 7 views
6

グラフをそれぞれのコミュニティ/クラスタに折りたたみたいと思っています。igraphのクラスタによるグラフの縮退

set.seed(123) 

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

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

次のグラフに示すように、3つのコミュニティがあります。

enter image description here

Iは、得られたグラフの頂点が前の頂点のメンバーシップに対応するように崩壊を頂点を削減したいです。グラフを参照してください。

enter image description here

私はigraphパッケージに新たなんだと私はigraphオブジェクトを扱う最善の方法に精通していませんよ。

答えて

8

あなたはcontractを試みることができる:

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

関連する問題