3

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

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

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

4

1 回答 1

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)

这会给你:

在此处输入图像描述

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

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

在此处输入图像描述

于 2019-01-31T16:03:26.253 回答