igraph

2012-10-02 11 views
8

में एक समुदाय ग्राफ उत्पन्न करना मैं इस प्रश्न का उत्तर खोज रहा हूं लेकिन मुझे कोई उल्लेख नहीं मिला, इसलिए मैंने यहां पोस्ट करने का निर्णय लिया। मैं यह देखने की कोशिश कर रहा हूं कि क्या igraph या कोई संकुल "सामुदायिक ग्राफ" बनाने का एक आसान तरीका प्रदान करता है जहां प्रत्येक नोड नेटवर्क में किसी समुदाय का प्रतिनिधित्व करता है और संबंध समुदायों के बीच संबंधों का प्रतिनिधित्व करते हैं। मैं इग्राफ में ठीक काम करने के लिए सामुदायिक पहचान एल्गोरिदम प्राप्त कर सकता हूं, लेकिन मुझे प्रत्येक समुदाय के बीच कनेक्शन दिखाने के लिए परिणामों को ध्वस्त करने का कोई तरीका नहीं मिला। किसी भी तरह की सहायता की सराहना की जाएगी।igraph

+1

हां यह अनुच्छेद के साथ किया जा सकता है लेकिन आपने वास्तव में कुछ भी प्रतिलिपि प्रदान नहीं किया है। यहां एक ब्लॉग पोस्ट है जो मैंने igraph [(LINK1)] पर किया था (http://trinkerrstuff.wordpress.com/2012/06/29/igraph-and- संरचित-text-exploration/) और [(LINK 2)] (http : //trinkerrstuff.wordpress.com/2012/06/30/igraph-and-sna-an-amateurs-dabbling/) हाँ स्वयं पदोन्नति लेकिन यह फिट बैठता है :) कई उदाहरणों के साथ भी इग्राफ की वेबसाइट बहुत अच्छी है। फिर हम एक उदाहरण डेटा सेट के साथ आगे मदद कर सकते हैं। उदाहरण के लिए –

+0

+1। – TARehman

उत्तर

19

आप बस contract.vertices() फ़ंक्शन का उपयोग कर सकते हैं। यह एक कशेरुक में अक्षरों के समूह को अनुबंधित करता है, अनिवार्य रूप से वैसे ही आप इसे चाहते हैं। जैसे

library(igraph) 

## create example graph 
g1 <- graph.full(5) 
V(g1)$name <- 1:5  
g2 <- graph.full(5) 
V(g2)$name <- 6:10 
g3 <- graph.ring(5) 
V(g3)$name <- 11:15 
g <- g1 %du% g2 %du% g3 + edge('1', '6') + edge('1', '11') 

## Community structure 
fc <- fastgreedy.community(g) 

## Create community graph, edge weights are the number of edges 
cg <- contract.vertices(g, membership(fc)) 
E(cg)$weight <- 1 
cg2 <- simplify(cg, remove.loops=FALSE) 

## Plot the community graph 
plot(cg2, edge.label=E(cg2)$weight, margin=.5, layout=layout.circle) 
+2

इस कोड की तरह दिखता नहीं है अब और अधिक काम करता है ... –

+2

दरअसल, मैंने इसे ठीक किया। –

संबंधित मुद्दे