2011-01-07 21 views
5

मैं निम्नलिखित के रूप में, एक क्लब और उनके हितों में सदस्यों का इतिहास हो:प्लॉट बहुआयामी डेटा

Member A: Football, Swimming 
Member B: Swimming, Jooga, Jogging 
Member C: Cycling, Football 
Member D: Football, Tennis, Cycling 

यह अजगर में इन प्लॉट करने के लिए इतना है कि एक अलग हितों के सदस्यों का हिस्सा देख सकते हैं संभव है? अग्रिम धन्यवाद, Adia

उत्तर

6

एक साधारण तालिका के लिए वेन आरेख की तुलना में अधिक समझ बनाने के लिए लगता है:

import scipy, pylab 
names = ['Alice', 'Bob', 'Carol', 'David'] 
interests = [['Football', 'Swimming'], ['Swimming', 'Jooga', 'Jogging'], 
      ['Cycling', 'Football'], ['Football', 'Tennis', 'Cycling']] 
allinterests = list(set(reduce(lambda x,y:x+y, interests))) 
X = scipy.zeros((len(interests), len(allinterests))) 
for i, indinterests in enumerate(interests): 
    for x in indinterests: 
     X[i, allinterests.index(x)] = 1 
pylab.matshow(X, interpolation='nearest', cmap=pylab.cm.gray_r) 
pylab.show() 
pylab.yticks(range(len(names)), names) 
pylab.ylim([len(names)-0.5, -0.5]) 
pylab.xticks(range(len(allinterests)), allinterests) 
pylab.savefig('interests.png') 

alt text

+0

मैं अपनी मशीन पर पोस्ट किए गए सटीक कोड का प्रयास कर रहा हूं, लेकिन यह पहले और दूसरे फॉर लूप में कोलन के साथ 'वाक्यविन्यास त्रुटि' संदेश देता है। मुझे यहां कोई गलत वाक्यविन्यास नहीं दिख रहा है, तो कारण क्या हो सकता है? – Adia

+0

क्षमा करें। मैंने 'शून्य' रेखा में एक कोष्ठक छोड़ दिया। संपादित। –

+0

बहुत धन्यवाद स्टीव, वह था। – Adia

3

आप matplotlib पर एक नज़र डालना चाहते हैं और देखें कि यह उसके लिए कुछ उपयुक्त है या नहीं।

Sage, एक और विकल्प। this example भी देखें।

+0

असल में मैं अपने प्रश्न पोस्ट करने से पहले किया था। मुझे ऐसा कुछ नहीं मिला जो सदस्यों को उनके हितों के खिलाफ मैप करने के लिए फिट हो सके। मुझे यकीन है कि यह है, यह सिर्फ पायथन के बारे में मेरा सीमित ज्ञान है। – Adia

+0

ठीक है। मैंने जवाब के लिए एक और विकल्प जोड़ा। मुझे लगता है कि वेन आरेख की तरह कुछ आपकी आवश्यकताओं के अनुरूप हो सकता है। वेन आरेख के लिए –

+1

+1। –

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