Python维恩图实际标签

Reb*_*bin 3 python matplotlib matplotlib-venn

我编写了以下代码来创建维恩图来显示 3 个集合的交集。我绘制的只是共同元素的数量。我想要的是打印真正的 A,B,C,... 在交叉点内不计算它们。有办法吗?

我的代码和输出:

set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])
set3 = set(['C', 'D',' E', 'F', 'G'])
v=venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是这样的:

在此输入图像描述

Gab*_* H. 6

请参阅/sf/answers/3900260451/

这是一个个性化的演示:

import matplotlib.pyplot as plt
from matplotlib_venn import venn3

set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])
set3 = set(['C', 'D',' E', 'F', 'G'])

venn = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))

venn.get_label_by_id('100').set_text('\n'.join(set1-set2-set3))
venn.get_label_by_id('110').set_text('\n'.join(set1&set2-set3))
venn.get_label_by_id('010').set_text('\n'.join(set2-set3-set1))
venn.get_label_by_id('101').set_text('\n'.join(set1&set3-set2))
venn.get_label_by_id('111').set_text('\n'.join(set1&set2&set3))
venn.get_label_by_id('011').set_text('\n'.join(set2&set3-set1))
venn.get_label_by_id('001').set_text('\n'.join(set3-set2-set1))

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述