matplotlib 热力图_5分钟入门 Seaborn 热力图可视化
Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。
注:所有代码均在IPython notebook中实现
heatmap 热力图
热力图在实际中常用于展示一组变量的相关系数矩阵,在展示列联表的数据分布上也有较大的用途,通过热力图我们可以非常直观地感受到数值大小的差异状况。heatmap的API如下所示:
下面将演示这些主要参数的用法,第一件事还是先导入相关的packages。
1import seaborn as sns2%matplotlib inline3sns.set(font_scale=1.5)
本次演示采用的数据集是Seaborn中内置的flights航班数据集:
1#导入数据集后按年月两个维度进行数据透视2data=sns.load_dataset("flights")\3 .pivot("month","year","passengers") 4data.head()
如上图所示,dataframe中的数据代表了1949年-1960年每个月的航班乘客数量,接下来热力图就隆重登场啦!
1sns.set_context({"figure.figsize":(8,8)})2sns.heatmap(data=data,square=True) 3#可以看到热力图主要展示的是二维数据的数据关系4#不同大小的值对应不同的颜色深浅
热力图的右侧是颜色带,上面代表了数值到颜色的映射,数值由小到大对应色彩由暗到亮。从上面的heatmap中我们可以得到两层信息,一是随着时间的推移,飞机的乘客数量是在逐步增多的,二是航班的乘坐旺季在七月和八月份。下面就具体的参数进行演示。
vmax
:设置颜色带的最大值vmin
:设置颜色带的最小值
1sns.heatmap(data=data,vmin=200,2 vmax=500)
可以看到右侧的颜色带最大最小值变了,而heatmap中颜色映射关系也会随之调整,将本图和上面的图进行对比便一目了然。
cmap
:设置颜色带的色系
1sns.heatmap(data=data,cmap="RdBu_r")
好像变好看了?
center
:设置颜色带的分界线
1sns.heatmap(data=data,cmap="RdBu_r",2 center=300)
细心的朋友可以察觉到颜色带上色彩两级的分界线变成了300
annot
:是否显示数值注释
1sns.heatmap(data=data,annot=True,2 cmap="RdBu_r")
怎么回事?乱码了吗?其实数值注释默认显示的是科学记数法的数值,我们得把数值进行格式化,这就用到了下面的参数。
fmt
:format的缩写,设置数值的格式化形式
1sns.heatmap(data=data,annot=True,2 fmt="d",cmap="RdBu_r")3#foramt为int类型
linewidths
:控制每个小方格之间的间距
1sns.heatmap(data=data,annot=True,2 fmt="d",linewidths=0.3,3 cmap="RdBu_r") 4#可以看到每个小方格之产生了间隙
linecolor
:控制分割线的颜色
1sns.heatmap(data=data,annot=True,2 fmt="d",linewidths=0.3,3 linecolor="grey",cmap="RdBu_r")4#原来的白色间隙变成了灰色间隙
cbar_kws
:关于颜色带的设置
1sns.heatmap(data=data,annot=True,2 fmt="d",cmap="RdBu_r",3 cbar_kws={"orientation":"horizontal"}) 4#横向显示颜色帮
mask
:传入布尔型矩阵,若为矩阵内为True,则热力图相应的位置的数据将会被屏蔽掉(常用在绘制相关系数矩阵图)
1import numpy as np 2#随机生成一个200行10列的数据集 3data_new = np.random.randn(200,10) 4 5#求出这个数据集的相关系数矩阵 6corr = np.corrcoef(data_new,rowvar=False) 7 8#以corr的形状生成一个全为0的矩阵 9mask = np.zeros_like(corr)1011#将mask的对角线及以上设置为True12#这部分就是对应要被遮掉的部分13mask[np.triu_indices_from(mask)] = True1415with sns.axes_style("white"):16 sns.heatmap(corr, mask=mask, vmax=0.3, 17 annot=True,cmap="RdBu_r")
如果大家对上面的代码流程不大了解,可以把mask打印出来看看
参照mask和上面绘制的图,应该就很容易理解了,mask中为1的部分,就是要被盖掉的部分。演示到此为止,想更深入的学习可以自行查阅官方文档!
▼ 点击成为社区注册会员 喜欢文章,点个在看
matplotlib 热力图_5分钟入门 Seaborn 热力图可视化相关推荐
- python 计算每日累计_5分钟学会用Python可视化数据分析美股
翻译:孟家慧 校对:Jack.Brow 作者:Gayan Samarakoon 这是一个股票市场入门分析项目,旨在应用Python编程的基础知识分析金融市场的数据. 第0部分:导入必要的模块 第1部分 ...
- 使用Matplotlib让你轻松入门Python数据可视化
Matplotlib matplotlib开发环境搭建 绘制基础 绘制直线 绘制折线 设置标签文字和线条粗细 绘制一元二次方程的曲线y=x^2 绘制正弦曲线和余弦曲线 散点图 绘制柱状图 绘制饼状图 ...
- mysql workbench入门_5分钟入门MySQL Workbench
接下来进入下一步,使用Workbench执行sql文件: 1.打开Workbench,主页面上点击要connect的连接. 2.注意系统偏好设置里,MySQL是running的状态,否则无法执行. 创 ...
- python用excel数据做热力图_7行代码 Python热力图可视化分析缺失数据处理-Python 实用宝典...
Python热力图寻找缺失数据 你有没有遇到一种情况,处理一张很大的csv表格的时候很难找到表格中每一列的缺失数据,或者说处理速度非常慢 ?当然如果你的Excel水平非常高,这个可能不会成为你的问题, ...
- matplotlib学习笔记(3)---热力图(Heat Map)
matplotlib学习笔记(3)-热力图(Heat Map) import matplotlib.pylab as plt import seaborn as sns import numpy as ...
- Seaborn数据可视化
目录 前言 1.安装 2.快速上手 2.1 模式设置 2.2 线形图 3.各种图形绘制 3.1 调色板 3.2 线形图 3.3 散点图 3.4 柱状图 3.5 箱式图 3.6 直方图 3.7 分类散点 ...
- Seaborn数据可视化,举例剖析
Seaborn数据可视化 单纯去使用matplotlib绘制图像,画出来是可以了,但是人们往往会去追求最佳实践,为了简化代码操作,所以就有了基于matplotlib的"装饰库"-- ...
- Plotly+Seaborn+Folium可视化探索爱彼迎租房数据
Airbnb是AirBed and Breakfast ( "Air-b-n-b" )的缩写,中文名称之为:空中食宿,是一家联系旅游人士和家有空房出租的服务型网站,可以为用户提供各 ...
- 可下载:60分钟入门PyTorch(中文翻译全集)
来源:机器学习初学者本文约9500字,建议阅读20分钟官网教程翻译:60分钟入门PyTorch(全集) 前言 原文翻译自:Deep Learning with PyTorch: A 60 Minute ...
最新文章
- react es6+ 代码优化之路-1
- 被人画是怎样一种体验?
- UML分析AsyncDisplayKit框架-ASMuplexImageNode异步下载时序图。
- 转:聊聊开发中幂等性问题(*)
- ES查询-基本查询续
- Java基础学习总结(113)——异常最佳实践
- 游戏计算机软著登记证书,“VR沙盘游戏心理疗法软件”取得计算机软件著作权登记证书...
- Go语言的线程模型-线程阻塞+线程调度
- c++用化简命题逻辑公式的方法设计一个5人表决开关电路,要求3人以上(含3人)同意则表决通过
- Zabbix4.0安装教程
- 清华大学计算机系网络课程,资源分享:清华大学计算机系网络课程.pdf
- 电脑前面板耳机没声音
- 利用Python爬取网页内容
- 一块硬盘的爱情故事,好揪心
- 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率?
- 博弈对抗游戏AI的技术方法的一些总结和思考
- 如何编写一个Java帮助文档
- 中考计算机加试及格多少分,中考总分多少 中考各科分数是多少
- python3继承supper_python3中supper和继承顺序
- 真正的老开发:一个无名Android开发的10年程序生涯,走了不少弯路所幸仍在岸上(1)