使用 matplotlib 绘制文氏图(venn)
包的安装
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∩¬BA\cap\neg B
- aB:包含B,但不包含A,即B中非A,B∩¬AB\cap \neg A
- AB:既包含A,又包含B,即A与B的交集,A∩BA\cap B
venn2(subsets=(3, 2, 1), set_labels=('A', 'B'))
或者直接指定各自子集所包含的元素内容:
venn2([set(['A', 'B', 'C', 'D']), set(['D', 'E', 'F'])])
import matplotlib.pyplot as plt
from matplotlib_venn import venn
plt.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 venn3
def 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
使用 matplotlib 绘制文氏图(venn)相关推荐
- tableau两个不同的图合并_举个栗子!Tableau技巧(59):学做两个集合的维恩图(文氏图)Venn diagram...
我们常说的维恩图( Venn 图),学名叫:文氏图( Venn diagram ),又称温氏图.这种图表主要用于展示在不同的事物群组(集合)之间的数学或逻辑联系. 爱好篮球的数据粉们,可能看到过这样一 ...
- python matplotlib绘制gif动图以及保存
python matplotlib绘制gif动图以及保存 标签: python matplotlib 谨以此文纪念我两天来的悲剧 昨天我用lstm拟合sin曲线,看到别人画的做的动图很好看,并且还能保 ...
- python 集合set 的三大方法intersection union difference来处理文氏图
TODO - 练习:A或B,但不能同时包含 编写一个函数,将两个集合(set_a和set_b)作为输入,并返回一个新的集合,其中包含set_a或set_b中的元素,但不包含两者兼有的元素. 在上面的文 ...
- python matplotlib 绘制K线图(蜡烛图)
python matplotlib 绘制K线图(蜡烛图) csv文件下载地址: 链接:https://pan.baidu.com/s/1EvDxEPuIS8zAseLRO1SDBQ 提取码:lb0t ...
- python画k线图_Python使用matplotlib绘制k线图(去掉空白日期)
原标题:Python使用matplotlib绘制k线图(去掉空白日期) 之前研究过使用 matplotlib.finance 中的 candlestick_ohlc() 方法绘制k线图,但是有个很无语 ...
- python做实时温度曲线图_Python学习记录 - matplotlib绘制温度变化折线图
Python学习记录 - matplotlib绘制温度变化折线图 Python学习记录 - matplotlib绘制温度变化折线图 题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折 ...
- 用python画动态三维轨迹_Python学习(一) —— matplotlib绘制三维轨迹图
在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...
- Python+Matplotlib绘制动态爱心图
函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定义动 ...
- 使用matplotlib绘制3D立方体图
这个repo 用来记录一些python技巧.书籍.学习链接等,欢迎star github地址 使用matplotlib绘制3D立方体图(含两种样式) # -*- coding: utf-8 -*- # ...
- Matplotlib 绘制 双轴 图
Matplotlib 绘制 双轴 图 创作背景 分析思路 总结 结尾 创作背景 最近本菜鸡想要画一个 双轴图 ,可是直接使用 plt.plot() 实现不了这个功能,无奈,菜嘛,所以只能去 Matpl ...
最新文章
- javascript的date对象
- 无人驾驶推进时间表及五大技术领域关键节点
- 神秘使者到 Java 帝国传道协程,竟被轰了出去!
- Virtools学习(七)—2D Picking
- how is group implemented for navigation list
- linux命令之history命令
- 漫步数理统计三十二——中心极限定理
- UI设计师,作品集该怎么做?场景展示样机更具专业性
- java重新连接tcp,如何处理TCP客户端丢弃和重新连接
- jquery事件绑定的几种用法
- Can‘t resolve ‘core-js NPM 引入 core js 失败 解决
- 用无线局域网设置服务器,无线局域网如何配置
- STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
- 全球及中国隐形眼镜护理液行业消费规模及投资竞争力分析报告2021-2027年
- 数分下第4讲 (8.2节): 平面和直线
- 快递面单隐私保护教程
- 爬虫入门到放弃系列07:js混淆、eval加密、字体加密三大反爬技术
- java计算机毕业设计黑格伯爵国际英语贵族学校官网源码+mysql数据库+系统+lw文档+部署
- 在线HTML转XML工具
- 如何在Linux虚拟器里新建跟目录,虚拟机linux 6 增加根目录