Диаграмма Венна является наиболее распространенной диаграммой в научных статьях и может быть использована для представления взаимосвязи между несколькими наборами данных. С помощью диаграммы Венна можно легко обнаружить общие черты и различия между этими наборами данных. В этом учебном пособии Вы узнаете о трех различных способах создания диаграмм Венна на Питоне и о том, как украсить эти диаграммы.
Часть 1: Как создать диаграмму Венна
Шаг 1: вам нужно установить библиотеку с именем matplotlib-venn.
pip install matplotlib-venn
Шаг 2: импорт библиотек
Import libraries
from matplotlib_venn import venn2, venn2_circles, venn2_unweighted
from matplotlib_venn import venn3, venn3_circles
from matplotlib import pyplot as plt
%matplotlib inline
Шаг 3: создание наборов данных для визуализации данных
Буквы в каждом наборе данных представляют имена студентов, и мы хотели бы визуализировать, сколько студентов записано в каждый курс, сколько из них записаны в два и три курса.
Course1=[‘A’,’B’,’C’,’E’,’F’,’G’,’I’,’P’,’Q’]
Course2=[‘B’,’E’,’F’,’H’,’K’,’Q’,’R’,’S’,’T’,’U’,’V’,’Z’]
Course3=[‘C’,’E’,’G’,’H’,’J’,’K’,’O’,’Q’,’Z’]
Шаг 4: визуализация диаграммы Венна
Давайте начнем рисовать диаграмму Венна с 2 группами.
Есть 3 основных метода создания диаграммы Венна с библиотекой matplotlib, приводящих к одному и тому же результату.
Метод 1 является наиболее простым. Положите два набора данных непосредственно.
Method1: put two datasets directly
venn2([set(dataset1), set(dataset2)])
plt.show()
Вы получите такую диаграмму Венна:
Для способа 2 сначала нужно знать цифры ниже.
Ab = Содержится в левой группе (здесь указано как A), но не в правой группе (здесь указано как B).
aB = Содержится в правой группе B, но не в левой группе A.
AB = A⋂B; содержится в обеих группах.
Параметр подмножества представляет собой 3-элементный список, где числа 5, 8, 4 соответствуют Ab, aB, AB.
Method 2:
venn2(subsets = (5, 8, 4))
plt.show()
Вы получите ту же самую диаграмму, что и диаграмма Венна 1. Матплотлиб автоматически назначил А и В диаграмме Венна.
Для метода 3 Вам необходимо передать словарь в подмножество параметров.
Ключом является метод двоичного кодирования. Поэтому три клавиши должны быть "10", "01" и "11", и каждое значение после клавиши представляет собой размер соответствующей области.
Часть 2: украсить диаграмму Венна.
изменяем метки
2. задаем цвета и непрозрачность
3. Изменяем круги
venn2([set(dataset1), set(dataset2)],set_labels=(‘Course1’, ‘Course2’),set_colors=(‘orange’, ‘darkgrey’), alpha = 0.8)
venn2_circles([set(dataset1), set(dataset2)], linestyle=’-.’, linewidth=2, color=’black’)
plt.show()
Matplotlib предлагает множество различных стилей. Более подробную информацию о стиле линии можно найти на сайте Matplotlib.
4. изменение размера подписи и номеров
vd2=venn2([set(dataset1), set(dataset2)],set_labels=(‘Course1’, ‘Course2’),set_colors=(‘orange’, ‘darkgrey’), alpha = 0.8)
venn2_circles([set(dataset1), set(dataset2)], linestyle=’-.’, linewidth=2, color=’black’)
for text in vd2.set_labels: /*change label size
text.set_fontsize(16);
for text in vd2.subset_labels: /*change number size
text.set_fontsize(16)
plt.show()
5. добавить название к графику
Чтобы закончить диаграмму Венна, необходимо добавить название.
vd2=venn2([set(dataset1), set(dataset2)],set_labels=(‘Course1’, ‘Course2’),set_colors=(‘orange’, ‘darkgrey’), alpha = 0.8)
venn2_circles([set(dataset1), set(dataset2)], linestyle=’-.’, linewidth=2, color=’black’)for text in vd2.set_labels:
text.set_fontsize(16);
for text in vd2.subset_labels:
text.set_fontsize(16)plt.title(‘Venn Diagram for Course1 and Course2’,fontname=’Times New Roman’,fontweight=’bold’,fontsize=20,pad=30,backgroundcolor=’#cbe7e3',color=’black’,style=’italic’);
plt.show()
Построение диаграммы Венна с 3 группами не имеет существенного отличия от построения диаграммы Венна с 2 группами.
vd3=venn3([set(dataset1),set(dataset2),set(dataset3)],
set_labels=(‘Course1’, ‘Course2’,’Course3'),
set_colors=( /* c4e6ff’, ‘F4ACB7’,’9D8189'),
alpha = 0.8)
venn3_circles([set(dataset1), set(dataset2),set(dataset3)], linestyle=’-.’, linewidth=2, color=’grey’)
for text in vd3.set_labels:
text.set_fontsize(16);
for text in vd3.subset_labels:
text.set_fontsize(16)
plt.title(‘Venn Diagram for 3 courses’,fontname=’Times New Roman’,fontweight=’bold’,fontsize=20,
pad=30,backgroundcolor=’cbe7e3',color=’black’,style=’italic’);
plt.show()
Matplotlib позволяет настраивать каждый круг отдельно. Давайте настроим верхнюю левую окружность.
vd3=venn3([set(dataset1),set(dataset2),set(dataset3)],
set_labels=(‘Course1’, ‘Course2’,’Course3'),
set_colors=(‘c4e6ff’, ‘F4ACB7’,’9D8189'),
alpha = 0.8)
c=venn3_circles([set(dataset1), set(dataset2),set(dataset3)], linestyle=’-.’, linewidth=2, color=’grey’)
for text in vd3.set_labels:
text.set_fontsize(16);
for text in vd3.subset_labels:
text.set_fontsize(16)
plt.title(‘Venn Diagram for 3 courses’,fontname=’Times New Roman’,fontweight=’bold’,fontsize=20,
pad=30,backgroundcolor=’cbe7e3',color=’black’,style=’italic’);
c[0].set_lw(3.0) customize upper left circle
c[0].set_ls(‘:’)
plt.show()
Цвет круга также может быть индивидуализирован. Однако, если мы присвоим кругу новый цвет, он перезапишет цвета, которые мы задали параметром set_colors в функции venn3.
vd3=venn3([set(dataset1),set(dataset2),set(dataset3)],
set_labels=(‘Course1’, ‘Course2’,’Course3'),
set_colors=(‘c4e6ff’, ‘F4ACB7’,’9D8189'),
alpha = 0.8)
c=venn3_circles([set(dataset1), set(dataset2),set(dataset3)], linestyle=’-.’, linewidth=2, color=’grey’)
for text in vd3.set_labels:
text.set_fontsize(16);
for text in vd3.subset_labels:
text.set_fontsize(16)
plt.title(‘Venn Diagram for 3 courses’,fontname=’Times New Roman’,fontweight=’bold’,fontsize=20,
pad=30,backgroundcolor=’cbe7e3',color=’black’,style=’italic’);
c[0].set_lw(7.0)
c[0].set_ls(‘:’)
c[0].set_color(‘c4e6ff’)
plt.show()
Понравилось? Дай знать!