Создание диаграмм Венна с категориальными данными - matplotlib_venn

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

  Rosy = ["chocolate", "chips", "cake", "sweets"]
  Steven = ["chocolate", "crisps", "nuggets"]

  venn2([set(Rosy), set(Steven)])
  plt.show()

Затем я получаю диаграмму с количество записей, соответствующих каждому сегменту, но мне бы хотелось фактические записи в каждом сегменте (т.е. чипсы, сладости для тортов в розовом кусочке, шоколад на пересечении и чипсы и наггетсы в кусочке Стивена). Есть ли способ сделать это с помощью matplotlib_venn?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
467
1

Ответы 1

Лучший способ, который я нашел, выглядит примерно так:

set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])

v = venn2([set1, set2], ('Set1', 'Set2'))
v.get_label_by_id('10').set_text('\n A')
v.get_label_by_id('01').set_text('\n E')
v.get_label_by_id('11').set_text('\n \nB \nC \nD')
plt.show()

Просто создайте функции, которые на лету генерируют тексты из set1 и set2 для set_text, и готово.

Другие вопросы по теме