【问题标题】:set circle size and label size on venn diagram with matplotlib-venn使用 matplotlib-venn 在维恩图上设置圆圈大小和标签大小
【发布时间】:2017-09-01 10:46:22
【问题描述】:

我有几个使用 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'))

【问题讨论】:

    标签: python matplotlib matplotlib-venn


    【解决方案1】:

    当您调用venn3 函数时,它会调用solve_venn3_circles 来计算圆心和半径。这意味着您不能自己设置半径,因为它会影响最终图像,并且可能不正确。不过您可以尝试通过venn3 函数的normalize_to 参数来调整圈子的大小。

    对于字体大小,您可以使用以下代码:

    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 信息,请查找 manual page。

    【讨论】:

    • 谢谢!它奏效了,尽管当我使用plt.savefig() 保存标签时,我的标签被完全裁剪,如果我先使用plt.tight_layout() 会更糟
    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多