Matplotlib_venn 更改文氏图中显示的内容
Matplotlib_venn changing what is displayed inside the Venn diagram
我正在使用 Matplotlib_venn 包制作一些维恩图来表示三个不同集合的重叠(因此使用 Venn3)。
当我使用plt.show()
创建维恩图时,每个圆圈每个部分内部显示的数字是集合中元素满足重叠要求的次数。我明白了。
我的问题是:有没有办法不显示这个基数,而是显示每个圆圈中存在的集合元素?我想这对于大集合来说会变得非常混乱,但是你能用三个集合来做到这一点吗?每个集合中的元素都少于 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)
这会给你:
如果要在标有100
的区域显示项目(例如a、b、c、d),可以使用以下代码:
v.get_label_by_id('100').set_text('a, b, c, d')
我正在使用 Matplotlib_venn 包制作一些维恩图来表示三个不同集合的重叠(因此使用 Venn3)。
当我使用plt.show()
创建维恩图时,每个圆圈每个部分内部显示的数字是集合中元素满足重叠要求的次数。我明白了。
我的问题是:有没有办法不显示这个基数,而是显示每个圆圈中存在的集合元素?我想这对于大集合来说会变得非常混乱,但是你能用三个集合来做到这一点吗?每个集合中的元素都少于 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)
这会给你:
如果要在标有100
的区域显示项目(例如a、b、c、d),可以使用以下代码:
v.get_label_by_id('100').set_text('a, b, c, d')