2013-11-07 4 views
24

Я хочу, чтобы отображать переменные, принадлежащие определенным группам.Python Matplotlib Venn diagram

Скажите, что у меня есть 6 переменных, которые я хочу отсортировать в этих 3 группах и построить как диаграмму Венна. Я хотел бы аннотировать имена переменных в три пузырька.
В этом простом примере мы могли бы сказать, что одна переменная находится в группе 1, 3 переменных в группе 2 и 2 переменных в группе 3.

Может кто-нибудь помочь мне с простой пример того, как сделать это в Matplotlib?

+0

Как вы хотите «зарисовать» внутри диаграммы Венна? Вы просто хотите, чтобы трехмерная диаграмма с текстовыми метками для разных групп? – Hooked

+0

Да, это правда, имена довольно длинные, поэтому было бы неплохо иметь некоторый эффект масштабирования для этого на размерах пузырьков. – jonas

ответ

37

Существует красивое дополнение диаграммы Венна для matplotlib под названием matplotlib-venn. Похоже, что он может быть полностью настроен для того, чтобы делать то, что вы ищете, от размера кругов (пропорционально заданному размеру) до внутренних и внешних меток.

Используя пример кода на веб-сайте дает сюжет, как:

enter image description here

Edit: За комментариями ниже следующий код дает, не пересекающихся кругов с текстом, используя ту же библиотеку:

import pylab as plt 
from matplotlib_venn import venn3, venn3_circles 

v = venn3(subsets=(1,1,0,1,0,0,0)) 
v.get_label_by_id('100').set_text('First') 
v.get_label_by_id('010').set_text('Second') 
v.get_label_by_id('001').set_text('Third') 
plt.title("Not a Venn diagram") 
plt.show() 

дает диаграмму:

enter image description here

+0

Я бы хотел отделить пузырьки, хотя это не перекрытие. – jonas

+2

@jonas Overlap - это то, что делает диаграмму Венна , ну, диаграмма Венна! Он показывает взаимосвязь между категориями. Для вас, однако, похоже, что вы можете просто создать кучу уникальных диаграмм Венна и собрать их вместе, как вам угодно. – Hooked

+0

Да, но я не знаю, как его кодировать .... не могли бы вы мне помочь – jonas

Смежные вопросы