2016-01-25 15 views
6

Tôi muốn thu gọn biểu đồ vào các cộng đồng/cụm tương ứng của nó. Hãy để tôi minh họa điều này với ví dụ về đồ chơi sau:Thu gọn đồ thị theo cụm trong igraph

set.seed(123) 

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

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

Có ba cộng đồng, như được thấy trong biểu đồ sau.

enter image description here

tôi muốn giảm bớt sự sụp đổ các đỉnh sao cho đỉnh trong đồ thị kết quả tương ứng với các thành viên của các đỉnh trước. Xem biểu đồ.

enter image description here

Tôi mới để gói igraph và tôi không quen với cách tốt nhất để đối phó với igraph đối tượng.

Trả lời

8

Bạn có thể thử 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

Các vấn đề liên quan