set circle size and label size on venn diagram with matplotlib-venn

纵然是瞬间 提交于 2020-01-23 11:33:33

问题


I have a couple of different Venn diagrams created with matplotlib-venn library, which share at least one set. I would like the circle of that set to be of the same size on both, so they are comparable. I would also like to change the size of the font of the labels, but I don't understand yet how to get that from the matplotlib-venn functions. How could I do it?

an example of the sets could be something like this:

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'))

回答1:


When you call venn3 function it call solve_venn3_circles to calculate centers and radius of circles. It is mean that you can not set radius by yourself because it is affect the final image and it may be incorrect. However you may try to adjust your circles' size by normalize_to argument of venn3 function.

For font size you can use this code:

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

Or set font size by id:

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

For id information look for manual page.



来源:https://stackoverflow.com/questions/45998554/set-circle-size-and-label-size-on-venn-diagram-with-matplotlib-venn

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!