Как определить размер круга, используя matplotlib_venn в Python

Я использую пакет python matplotlib_venn для построения диаграммы Венна. Я хочу установить размер кругов таким образом, чтобы на разных графиках размер круга был одинаковым. Как я мог это сделать?

from charticle.venn import Venn2
import matplotlib_venn as vplt
import matplotlib.pyplot as plt
fig = plt.figure()
plt.subplot(121)
v2 = vplt.venn2(subsets={'10':10,'01':10,'11':1},set_labels = ('A','B'))
v.Sizes(a=1.0, b=10.0, ab=1.0)
plt.subplot(122)
v1 = vplt.venn2(subsets={'10':10,'01':1000,'11':1},set_labels = ('A','B'))
plt.show()

введите описание изображения здесь

1 ответ

Как это? В основном я работал с объектами venn2_circles и игнорировал объекты venn2. Если вы попытаетесь раскрасить объект venn2, радиусы будут отключены, и он не будет правильно заполняться, что, как я думаю, упоминалось в комментарии выше.

import matplotlib_venn as vplt
import matplotlib.pyplot as plt

plt.figure(figsize=(10,10))
plt.subplot(1, 2, 1)
plt.title('Subplot 1')
v = vplt.venn2(subsets=(10,10,1), set_labels=('A', 'B'), set_colors=('w', 'w'))
c = vplt.venn2_circles(subsets=(2, 2, 1), linestyle='solid')
c[0].set_radius(0.32)
c[1].set_radius(0.32)
c[0].set_lw(2.0)
c[1].set_lw(2.0)
c[0].set_color('green')
c[1].set_color('red')
c[0].set_alpha(0.5)
c[1].set_alpha(0.5)
c[0].set_edgecolor('black')
c[1].set_edgecolor('black')

plt.subplot(1, 2, 2)
plt.title('Subplot 2')
v = vplt.venn2(subsets=(10,1000,1), set_labels=('A', 'B'), set_colors=('w', 'w'))
v.get_label_by_id('10').set_x(0.25)
v.get_label_by_id('01').set_x(-.25)
v.get_label_by_id('11').set_x(0)
v.set_labels[0].set_position((-0.22, -0.45))
v.set_labels[1].set_position((0.25, -0.45))


c = vplt.venn2_circles(subsets=(2, 2, 1), linestyle='solid')
c[0].set_radius(0.32)
c[1].set_radius(0.32)
c[0].set_lw(2.0)
c[1].set_lw(2.0)
c[0].set_color('green')
c[1].set_color('red')
c[0].set_alpha(0.5)
c[1].set_alpha(0.5)
c[0].set_edgecolor('black')
c[1].set_edgecolor('black')

Изображение результата здесь, потому что мне нужно 10 репутации, чтобы размещать фотографии

Ты не можешь сделать это.

Функции venn2_circles а также venn3_circles вернуть список matplotlib.patch.Circle объекты, которые могут быть настроены дальше по вашему вкусу.

Это означает, что радиусы окружностей и центры связаны друг с другом, поэтому изменение центра или радиуса может вызвать проблему.

Дополнительная информация: https://pypi.org/project/matplotlib-venn/ и /questions/23895336/ustanovit-razmer-kruga-i-razmer-etiketki-na-diagramme-venna-s-pomoschyu-matplotlib-venn/23895361#23895361

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