matplotlib 更改维恩图中显示的内容

ovfsdjhp  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(88)

我使用Matplotlib_vern包来制作一些维恩图,表示三个不同集合的重叠(因此使用Venn3)。
当我使用plt.show()并创建维恩图时,显示在每个圆的每个部分内部的数字是集合中的元素满足重叠要求的次数。我明白
我的问题是:有没有办法不显示这个基数,而是显示每个圆中存在的集合元素?我想这会变得非常混乱的大集合,但你能做到这一点,说三个集合都包含少于5个元素在每个集合?如果是这样,我将如何做到这一点?

mspsb9vt

mspsb9vt1#

我想我只需要使用.get_label_by_id().set_text()来做,因为只有几个项目,正如你所说的。
首先,让我们获取维恩图中每个区域的所有标签:

from matplotlib_venn import venn3

subsets = (1, 1, 0.2, 1, 0.2, 0.2, 0.1)
v = venn3(subsets=subsets)

labels = ['100', '101', '110', '010', '001', '011', '111']
for label in labels:
    v.get_label_by_id(label).set_text(label)

这将为您提供:

如果你想在标记为100的区域中显示项目(例如a、B、c、d),你可以使用以下代码:
v.get_label_by_id('100').set_text('a, b, c, d')

相关问题