Найти тему
Big Lebowski

Как создать и украсить диаграммы Венна в Python

Диаграмма Венна является наиболее распространенной диаграммой в научных статьях и может быть использована для представления взаимосвязи между несколькими наборами данных. С помощью диаграммы Венна можно легко обнаружить общие черты и различия между этими наборами данных. В этом учебном пособии Вы узнаете о трех различных способах создания диаграмм Венна на Питоне и о том, как украсить эти диаграммы.

Часть 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

Для способа 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: украсить диаграмму Венна.

изменяем метки

-3

2. задаем цвета и непрозрачность

-4

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

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()
-6

Построение диаграммы Венна с 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()
-7

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()
-8

Цвет круга также может быть индивидуализирован. Однако, если мы присвоим кругу новый цвет, он перезапишет цвета, которые мы задали параметром 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()
-9

Понравилось? Дай знать!

Наука
7 млн интересуются