Python语言学习

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

2021-05-08  本文已影响0人  Davey1220

使用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/

上一篇下一篇

猜你喜欢

热点阅读