Python可视化

Pyhon开源包pyvenn绘制2-6组韦恩图

2021-06-25  本文已影响0人  Justin小贾同学

Python画韦恩图

一、简介

上一篇提到了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)

  1. 使用git直接clone
git clone https://github.com/tctianchi/pyvenn.git
  1. 直接下载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

更多例子,可参考https://github.com/tctianchi/pyvenn

上一篇下一篇

猜你喜欢

热点阅读