利用Python绘制韦恩图

写在前面

 

上一篇文章VCF文件的正确打开方式 介绍了如何利用python模块处理VCF文件,当时为什么要写这篇文章呢?主要是因为工作中需要比较两个VCF文件的共有和特有的突变位点,必然要做的事情就是VCF文件的解析,所以才有了上一篇文章。现在比较结果出来了,结果是一个表格,WTF,表格,也太low了吧,最主要是不直观啊!所以决定继续完善脚本,将输出的结果顺便画个图,直观明了。

 

懂你,就给你想要的

 

你想要的当然是代码咯!

代码之两组数据:

码之三组数据:

 

结果示例图

 

 

授之以渔不如授之以渔

 

古人云,授之以鱼不如授之以渔。代码虽然很简单,我们还是有必要深入说一下具体的做法。

 

python画图我们首先想到的是matplotlib库,强大的画图库,python当然也有很多其他的画图库,但大部分都是依赖matplotlib的。然而,matplotlib库本身并不能绘制VENN图,需要借助第三方库---matplotlib_venn,当然matplotlib_venn库也是依赖matplotlib库的。我们分别利用matplotlib_venn库的venn2和venn3函数来绘制两组数据和三组数据的VENN图。venn2和venn3的用法几乎一样,下面我们以venn2为例说一说韦恩图是怎么画出来的。

 

venn2(subsets,set_labels=('A','B'),set_colors=('r','g'),alpha=0.4,normalize_to=1.0,ax=None,subset_label_formatter=None)

 

venn2主要有以上几个参数,但最常用的是前三个:

1. subsets:也是必须的参数,即绘图所需的数据集,subsets接受三种格式的输入数据:

    1.1 一个list,包含两个set元素,set中包含两个数据集集体的数据,即上述代码使用的方法;

    1.2 一个三个key字典,{'10': 1, '01': 1, '11': 2},key是两个字符的二进制编码方式,所以三个key必须是“10”,“01”和“11”,value分别代表对应区域的大小;

    1.3 一个包含三个数字的list,三个数字分别代表图形三部分的大小。

推荐用第一种方法,给原始数据即可,不需要计算数据集的大小

 

2. set_labels

    设置数据的标签,即图形中两组数据的名称

 

3. set_colors

    设置图形的颜色

 

以上就是matplotlib_venn库的venn2模块的简单介绍。到此重点讲完,下面说几点细节:

1. 图形加Title,图片设置大小等功能是由matplotlib库实现的而不是matplotlib_venn本身。

2. 实际工作中,我们往往希望把画出来的图片保存成文件,而不是直接展示出来,这是plt.show()就不合适了,需要改成plt.savefig('test.png')才行(test.png为要输出的图片名)。

3. matplotlib_venn库只能实现两组或者三组数据的韦恩图的绘制,更多数据集暂时不支持(此处,尴尬而不失优雅的微笑)。

 

                                                                                              欢迎关注 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值