使用 matplotlib-venn 在维恩图上设置圆圈大小和标签大小

Nab*_*bla 5 python matplotlib 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'))
Run Code Online (Sandbox Code Playgroud)

Ser*_*ity 4

当您调用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)
Run Code Online (Sandbox Code Playgroud)

或者通过id设置字体大小:

label = v_test1.get_label_by_id('111')          
label.set_fontsize(22) 
Run Code Online (Sandbox Code Playgroud)

有关 id 信息,请查找手册页