美文网首页
Python画韦恩图

Python画韦恩图

作者: Justin小贾同学 | 来源:发表于2021-06-24 14:32 被阅读0次

    一、韦恩图

    恩图一般指维恩图。维恩图(英语: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
    1. 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]
    2. set_labels:设置数据的标签,即图形中两组数据的名称
    3. 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
    1. 科研作图对分辨率有要求,可通过plt.figure()进行调整,图像的大小和dpi。
    2. 注意,图片的保存plt.savefig()一定要放在plt.show()之前,不然保存的就是一张空白图片。

    matplotlib_venn库只能实现两组或者三组数据的韦恩图的绘制,更多数据集暂时不支持。(哭笑.jpg)

    参考资料

    维恩图_百度百科 (baidu.com)

    相关文章

      网友评论

          本文标题:Python画韦恩图

          本文链接:https://www.haomeiwen.com/subject/plnwyltx.html