如何在Python中用集合大小的百分比标记维恩图?

2024-04-24

我正在使用matplotlib_venn.venn2函数在一个图中绘制四个不同的维恩图。

我对函数子集参数的输入是字符串集:

    cse_set_ucb = set(['data science','algorithms', 'machine learning',...])

    ece_set_ucb = set(['circuits', 'signals', 'machine learning',....])

    v_ucb = venn2([cse_set_ucb,ece_set_ucb],set_labels=['CSE','ECE'],set_colors=['r','g'])

v_ucla、v_ucsb 和 v_ucsd 也类似。

当前结果:

然而,为了让比较更直观,我想展示维恩图中的百分比 而不是设定的尺寸。是否可以通过 venn2 中的某些功能来做到这一点?

例如,第一个图将替换为:

我现在能想到的唯一选择是以某种方式自己进行归一化,然后将子集大小输入 venn2 函数,而不是集合,但我希望有一种更智能的方法来做到这一点


有一个说法子集标签格式化程序它控制使用函数打印的标签。

total = len(set_a.union(set_b))
v1 = venn2(
    [set_a, set_b],
    set_labels=labels_depts,
    set_colors=['red', 'green'],
    subset_label_formatter=lambda x: f"{(x/total):1.0%}"
)

Ref:

1)维恩图中的百分比 https://github.com/konstantint/matplotlib-venn/issues/8

2)添加参数以允许对子集大小的标签进行格式化 https://github.com/konstantint/matplotlib-venn/pull/28

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中用集合大小的百分比标记维恩图? 的相关文章

随机推荐