美文网首页Python语言学习
Python数据可视化(九):维恩图绘制

Python数据可视化(九):维恩图绘制

作者: Davey1220 | 来源:发表于2021-05-08 20:34 被阅读0次

    使用matplotlib_venn包绘制维恩图

    # library
    import matplotlib.pyplot as plt
    from matplotlib_venn import venn2
    
    # 使用venn2函数绘制二维韦恩图
    # First way to call the 2 group Venn diagram:
    venn2(subsets = (10, 5, 2), set_labels = ('Group A', 'Group B'))
    plt.show()
    
    image.png
    # Second way
    venn2([set(['A', 'B', 'C', 'D']), set(['D', 'E', 'F'])])
    plt.show()
    
    image.png
    # Basic Venn
    v = venn2( (10, 20, 10), alpha = 1 )
    
    # Change Backgroud
    plt.gca().set_facecolor('skyblue')
    plt.gca().set_axis_on()
    
    # Show it
    plt.show()
    
    image.png
    # 使用venn3函数绘制三维韦恩图
    from matplotlib_venn import venn3
    
    # Make the diagram
    venn3(subsets = (10, 8, 22, 6,9,4,2))
    plt.show()
    
    image.png
    # 自定义集合标签
    # Custom text labels: change the label of group A
    v=venn3(subsets = (10, 8, 22, 6,9,4,2), set_labels = ('Group A', 'Group B', 'Group C'))
    v.get_label_by_id('A').set_text('My Favourite group!')
    plt.show()
    
    image.png
    # 更改文图边框线
    from matplotlib_venn import venn3, venn3_circles
    
    # Line style: can be 'dashed' or 'dotted' for example
    v=venn3(subsets = (10, 8, 22, 6,9,4,2), set_labels = ('Group A', 'Group B', 'Group C'))
    c=venn3_circles(subsets = (10, 8, 22, 6,9,4,2), linestyle='dashed', linewidth=2, color="grey")
    plt.show()
    
    image.png
    # 自定义特定集合
    # Change one group only
    v=venn3(subsets = (10, 8, 22, 6,9,4,2), set_labels = ('Group A', 'Group B', 'Group C'))
    c=venn3_circles(subsets = (10, 8, 22, 6,9,4,2), linestyle='dashed', linewidth=1, color="grey")
    
    c[0].set_lw(8.0)
    c[0].set_ls('dotted')
    c[0].set_color('skyblue')
    plt.show()
    
    image.png
    # 自定义韦恩图
    
    # libraries
    from matplotlib import pyplot as plt
    import numpy as np
    from matplotlib_venn import venn3, venn3_circles
    
    # Make a Basic Venn
    v = venn3(subsets=(1, 1, 1, 1, 1, 1, 1), set_labels = ('A', 'B', 'C'))
    
    # Custom it
    v.get_patch_by_id('100').set_alpha(1.0)
    v.get_patch_by_id('100').set_color('white')
    v.get_label_by_id('100').set_text('Unknown')
    v.get_label_by_id('A').set_text('Set "A"')
    c = venn3_circles(subsets=(1, 1, 1, 1, 1, 1, 1), linestyle='dashed')
    c[0].set_lw(1.0)
    c[0].set_ls('dotted')
    
    # Add title and annotation
    plt.title("Sample Venn diagram")
    plt.annotate('Unknown set', xy=v.get_label_by_id('100').get_position() - np.array([0, 0.05]), xytext=(-70,-70), 
                 ha='center', textcoords='offset points', 
                 bbox=dict(boxstyle='round,pad=0.5', fc='gray', alpha=0.1),
                 arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0.5',color='gray'))
    
    # Show it
    plt.show()
    
    image.png

    原文链接:https://www.python-graph-gallery.com/venn-diagram/

    相关文章

      网友评论

        本文标题:Python数据可视化(九):维恩图绘制

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