Сюжет многомерных данных - PullRequest
5 голосов
/ 07 января 2011

У меня есть записи о членах в клубе и их интересах, как показано ниже:

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

Можно ли построить их в Python, чтобы можно было увидеть разные интересы участников?Заранее спасибо, Adia

Ответы [ 2 ]

6 голосов
/ 07 января 2011

Простая таблица, кажется, имеет больше смысла, чем диаграмма Венна:

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 голосов
/ 07 января 2011

Возможно, вы захотите взглянуть на matplotlib и посмотреть, предлагает ли он что-нибудь подходящее для этого.

Sage , другая альтернатива.Смотрите также этот пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...