Pyhon开源包pyvenn绘制2-6组韦恩图
2021-06-25 本文已影响0人
Justin小贾同学
一、简介
上一篇提到了Python画韦恩图,不得不说matplotlib_venn
库绘制韦恩图真的很方便,配置简单。但是,matplotlib_venn
库不够灵活,只支持两组或者三组韦恩图。此外,还有一个问题就是圈的大小不可直接调节。因为有时候需要把圆圈的大小调节成一致,这样看起来会协调一些。
pyvenn
基于matplotlib.patches二次开发的开源库,pyvenn支持2到6组数据。pyvenn
更加灵活多变,具有'venn2', 'venn3', 'venn4', 'venn5', 'venn6'五个函数。
二、准备工作
pyvenn: 2 ~ 6 sets venn diagram for python (github.com)
- 使用git直接clone
git clone https://github.com/tctianchi/pyvenn.git
-
直接下载zip包
三、代码实现
当我们导入一个模块时,默认情况下python解释器会搜索当前目录、已安装的内置模块和第三方模块,搜索路径存放在sys模块的path中。
如果模块和.py不在同一个目录下,在脚本开头加sys.path.append('路径')即可。或者可以把第三方模块放入已经添加到系统环境变量的路径内,环境变量的内容会自动添加到模块搜索路径中。
import sys
sys.path.append(r'D:\work\python\pack\pyvenn')
import venn
labels = venn.get_labels([
range(9),
range(5, 15)
], fill=['number', 'logic'])
fig, ax = venn.venn2(labels, names=['A', 'B'])
fig.show()
venn2
fill参数有三个可选值,
number
每个组的集合数值logic
每个组的标识percent
#每个组分的百分比
import sys
sys.path.append(r'D:\work\python\pack\pyvenn')
import venn
labels = venn.get_labels([range(9),range(5, 15),range(8,16)], fill=['number', 'logic','percent'])
fig, ax = venn.venn3(labels, names=['A', 'B','C'],
fontsize=8,#控制组名及中间数字大小
dpi=72)
fig.show()
veen3.png
import sys
sys.path.append(r'D:\work\python\pack\pyvenn')
import venn
labels = venn.get_labels([range(10), range(5, 15), range(3, 8), range(8, 17)], fill=['number',
'logic',
'percent'
])
fig, ax = venn.venn4(labels, names=list('ABCD'))
fig.show()
venn4.png