一、韦恩图
恩图一般指维恩图。维恩图(英语:Venn diagram),或译Venn图、文氏图、温氏图、韦恩图,是在所谓的集合论(或者类的理论)数学分支中,在不太严格的意义下用以表示集合(或类)的一种草图。
在转录组分析中,常常用韦恩图来表示各组之间差异表达基因数量的关系。
二、代码实现
python画图我们首先想到的是matplotlib
库,强大的画图库。
然而,matplotlib
库本身并不能绘制VENN图,需要借助第三方库matplotlib_venn
,当然matplotlib_venn库也是依赖matplotlib库的。
下面,我们将分别利用matplotlib_venn库的venn2和venn3函数来绘制两组数据和三组数据的Venn
图。
venn2
import matplotlib.pyplot as plt
from matplotlib_venn import venn2
venn2(
subsets = [set([1,2,3]),set([42,3,4,5])],
set_labels=('A','B'),
set_colors=('r','g'))
image
- subsets:必须的参数,即绘图所需的数据集,subsets接受三种格式的输入数据:
1.1 一个list,包含两个set元素,set中包含两个数据集集体的数据,即上述代码使用的方法;
1.2 一个三个key字典,key是两个字符的二进制编码方式,所以三个key必须是“10”,“01”和“11”,value分别代表对应区域的大小,{'10': 2, '01': 3, '11': 1}
1.3 一个包含三个数字的list,三个数字分别代表图形三部分的大小,[2,3,1]
- set_labels:设置数据的标签,即图形中两组数据的名称
- set_colors:设置图形的颜色
venn3
import matplotlib.pyplot as plt
from matplotlib_venn import venn3
my_dpi=100
plt.figure(figsize=(800/my_dpi, 600/my_dpi), dpi=my_dpi)#控制图尺寸的同时,使图高分辨率(高清)显示
venn3(
subsets = [set([1,2,3,5,9]),set([1,2,4,6]),set([1,3,4,7])],
set_labels=('A','B','C'),
set_colors=('r','g','b')
)
plt.savefig('./test.jpg')
plt.show()
image
- 科研作图对分辨率有要求,可通过plt.figure()进行调整,图像的大小和dpi。
- 注意,图片的保存plt.savefig()一定要放在plt.show()之前,不然保存的就是一张空白图片。
matplotlib_venn库只能实现两组或者三组数据的韦恩图的绘制,更多数据集暂时不支持。(哭笑.jpg)
网友评论