Установить размер круга и размер этикетки на диаграмме Венна с помощью matplotlib-venn

У меня есть пара различных диаграмм Венна, созданных с помощью библиотеки matplotlib-venn, которые имеют хотя бы один набор. Мне бы хотелось, чтобы круг этого набора был одинакового размера на обоих, чтобы они были сопоставимы. Я также хотел бы изменить размер шрифта надписей, но я пока не понимаю, как получить это из функций matplotlib-venn. Как я мог это сделать?

Пример наборов может быть примерно таким:

from matplotlib_venn import venn3

s1=set('abracadabra')
s2=set('alakazam')
s3=set('stackru')
s4=set('hocus pocus')
v_test1=venn3([s1,s2,s3],('set1','set2','set3'))
v_test1=venn3([s1,s3,s4],('set1','set3','set4'))

1 ответ

Решение

Когда вы звоните venn3 функция это вызов solve_venn3_circles рассчитать центры и радиус окружностей. Это означает, что вы не можете сами установить радиус, потому что это влияет на конечное изображение и может быть неверным. Однако вы можете попытаться отрегулировать размер ваших кругов с помощью normalize_to аргумент venn3 функция.

Для размера шрифта вы можете использовать этот код:

for t in v_test1.set_labels: t.set_fontsize(22)
for t in v_test1.subset_labels: t.set_fontsize(20)

Или установите размер шрифта по id:

label = v_test1.get_label_by_id('111')          
label.set_fontsize(22) 

Информацию об id ищите на странице руководства.

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