是否可以在通用集中显示维恩图?
Is it possible to display the venn diagram within a universal set?
是否可以使用matplotlib-venn显示通用集?我对 python 和 matplotlib 包都是新手,所以我实际上不确定什么是可能的,什么不是。
我正在尝试创建一个维恩图生成器,它接受每个圆的值,然后是一个参数(例如交点 B),然后仅突出显示两个圆的交点。基本上,这就是我想要的输出。
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()
您可以使用plt.annotate来配置值的位置
是否可以使用matplotlib-venn显示通用集?我对 python 和 matplotlib 包都是新手,所以我实际上不确定什么是可能的,什么不是。
我正在尝试创建一个维恩图生成器,它接受每个圆的值,然后是一个参数(例如交点 B),然后仅突出显示两个圆的交点。基本上,这就是我想要的输出。
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()
您可以使用plt.annotate来配置值的位置