Matplotlib_venn 改变了维恩图中显示的内容

3 python matplotlib venn-diagram matplotlib-venn

我正在使用 Matplotlib_venn 包制作一些表示三个不同集合重叠的维恩图(因此使用了 Venn3)。

当我使用plt.show()和创建维恩图时,显示在每个圆圈每个部分内部的数字是集合中元素满足重叠要求的次数。我明白了。

我的问题是:有没有一种方法可以显示每个圆圈中存在的集合元素,而不是显示这个基数?我想这对于大集合来说会变得非常混乱,但是你能用三个集合来做到这一点,每个集合都包含少于 5 个元素吗?如果是这样,我将如何做到这一点?

ste*_*ven 5

我想我只需要习惯.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)
Run Code Online (Sandbox Code Playgroud)

这会给你:

在此处输入图片说明

如果要在标记为 的区域中显示项目(例如,a、b、c、d)100,可以使用以下代码:

v.get_label_by_id('100').set_text('a, b, c, d')

在此处输入图片说明

  • 哇,这个问题已经潜伏了几个月。这完美地回答了我的问题。非常感谢您的回复。 (2认同)