使用 matplotlib 绘制文氏图(venn)
来源:互联网 发布:新页进销存软件免费版 编辑:程序博客网 时间:2024/05/19 13:23
包的安装
pip install matplotlib-venn
依赖于以下的包:
- numpy
- scipy
- matplotlib
matplotlib-venn
主要用于绘制 two-circles 以及 three-circles 的文氏图。
使用
matplotlib-venn
包提供了四个主要的函数:venn2
、venn2-circles
、venn3
和 venn3-circles
。
venn2
和venn2_circles
接受一个3元素(Ab,aB,AB)构成的 tuple 作为各个子集所包含元素的个数(不是具体的元素):
- Ab:包含A,但不包含B,即A中非B的部分,
A∩¬B - aB:包含B,但不包含A,即B中非A,
B∩¬A - AB:既包含A,又包含B,即A与B的交集,
A∩B
venn2(subsets=(3, 2, 1), set_labels=('A', 'B'))
或者直接指定各自子集所包含的元素内容:
venn2([set(['A', 'B', 'C', 'D']), set(['D', 'E', 'F'])])
import matplotlib.pyplot as pltfrom matplotlib_venn import vennplt.figure(figsize=(4, 4))venn2(subsets(3, 2, 1))plt.show()
图中的3
、1
、2
分别表示各自子集的大小,而非集合中的元素内容;
v = venn2(subsets=(3, 0, 2), set_labels=('A', 'B')) # 构造一种包含关系v.get_label_by_id('10').set_text('')v.get_label_by_id('01').set_text('')v.get_label_by_id('11').set_text('') # 或者设置任何你想设置的内容
类似地,venn3
与venn3_circles
接受一个7个元素构成的元组作为各个子集的大小(Abc, aBc, ABc, abC, AbC, aBC, ABC):
from matplotlib_venn import venn3def int2bin(n): s = bin(n)[2:] return (3-len(s))*'0'+s # 1 ⇒ '001' # 2 ⇒ '010' # 3 ⇒ '011' # ... # 7 ⇒ '111'v = venn3(subsets=(1, 1, 1, 1, 1, 1, 1))for i in range(1, 8): v.get_label_by_id(int2bin(i)).set_text(int2bin(i))plt.show()
References
[1] matplotlib-venn 0.11.2
0 0
- 使用 matplotlib 绘制文氏图(venn)
- 使用matplotlib绘制图表
- 使用matplotlib绘制散点图
- Python:使用matplotlib绘制图表
- Python:使用matplotlib绘制图表
- Python:使用matplotlib绘制图表
- 使用matplotlib绘制图像初步
- 使用matplotlib绘制动态图
- Python:使用matplotlib绘制图表
- 使用matplotlib绘制三维图形
- 使用matplotlib绘制自定义图形
- matplotlib中使用imshow绘制二维图
- matplotlib中使用Pcolor绘制二维图
- python使用matplotlib绘制xy坐标轴图
- python 使用numpy matplotlib绘制图表
- 使用Matplotlib绘制正余弦函数、抛物线
- pyqt中使用matplotlib绘制动态曲线
- matplotlib中使用imshow绘制二维图
- xz文件的解压和压缩
- (转)CMMB中的H264和AAC打包成ts流
- 程序员的出路之一
- Smoke test,Sanity test,Regression test之间的区别
- poj 1201(差分约束)
- 使用 matplotlib 绘制文氏图(venn)
- Jquery 优化
- OBYC中的GBB一般修改的解释
- H264 帧判断
- 写在2016年上班第一天
- 函数书写的规则
- 乌克兰BlackEnergy新动向:通过Word文档进行APT攻击
- H.264语法分析
- windbg在DriverEntry下断点