2011-01-07 50 views
5

我在俱樂部和他們的利益成員的記錄,如下列:情節多維數據

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

是否有可能在Python繪製這些,使人們可以看到不同的利益成員分享?在此先感謝,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

3

您可能想看看matplotlib,看看它是否提供適合的東西。

Sage,另一種選擇。另見this example

+0

其實我發佈我的問題以前那樣。我無法找到適合將成員映射到他們的興趣上的東西。我確信有,這只是我對Python的有限知識。 – Adia 2011-01-07 13:32:47

+0

好的。我增加了另一個答案。我猜想像維恩圖可能適合您的需求。 – 2011-01-07 13:50:51