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

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

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

from matplotlib_venn import venn3

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

person Nabla    schedule 01.09.2017    source источник


Ответы (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) 

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

person Serenity    schedule 01.09.2017
comment
Благодарность! это сработало, хотя мои метки полностью обрезались, когда я сохранял их с помощью plt.savefig(), еще хуже, если я сначала использовал plt.tight_layout() - person Nabla; 02.09.2017