是否可以在通用集中显示维恩图?

时间:2019-02-09 06:15:32

标签: python-3.x matplotlib-venn

是否可以使用matplotlib-venn显示通用集?我对python和matplotlib软件包都是新手,所以我实际上不确定什么是可能的,什么不是。

我正在尝试创建一个维恩图生成器,该生成器接受每个圆的值,然后接受一个参数(例如交点B),然后仅突出显示两个圆的交点。基本上,这就是我想要的输出。

enter image description here

1 个答案:

答案 0 :(得分:0)

Python带有软件包 matplotlib_venn ,但是您需要一些技巧。

import matplotlib.pyplot as plt
from matplotlib_venn import venn3
A = set([9,3,6])
B = set([2,4,6,8])
C = set([0,5,1,7])
v = venn3([A,B,C], ('P', 'Q', 'U'))

v.get_label_by_id('100').set_text('\n'.join(map(str,A-B)))
v.get_label_by_id('110').set_text('\n'.join(map(str,A&B)))
v.get_label_by_id('010').set_text('\n'.join(map(str,B-A)))
v.get_label_by_id('001').set_text('\n'.join(map(str,C)))
v.get_patch_by_id('001').set_color('white')
plt.axis('on')
plt.show()

venn

您可以使用 plt.annotate 配置值的位置