heatmap 热力图

热力图在实际中常用于展示一组变量的相关系数矩阵,在展示列联表的数据分布上也有较大的用途,通过热力图我们可以非常直观地感受到数值大小的差异状况。heatmap的API如下所示:

下面将演示这些主要参数的用法,第一件事还是先导入相关的packages。

import seaborn as sns
%matplotlib inline
sns.set(font_scale=1.5)

次演示采用的数据集是Seaborn中内置的flights航班数据集

#导入数据集后按年月两个维度进行数据透视
data=sns.load_dataset("flights")\.pivot("month","year","passengers")
data.head()

如上图所示,dataframe中的数据代表了1949年-1960年每个月的航班乘客数量,接下来热力图就隆重登场啦!

sns.set_context({"figure.figsize":(8,8)})
sns.heatmap(data=data,square=True)
#可以看到热力图主要展示的是二维数据的数据关系
#不同大小的值对应不同的颜色深浅

热力图的右侧是颜色带,上面代表了数值到颜色的映射,数值由小到大对应色彩由暗到亮。从上面的heatmap中我们可以得到两层信息,一是随着时间的推移,飞机的乘客数量是在逐步增多的,二是航班的乘坐旺季在七月和八月份。下面就具体的参数进行演示。

vmax:设置颜色带的最大值
vmin:设置颜色带的最小值

sns.heatmap(data=data,vmin=200,vmax=500)

可以看到右侧的颜色带最大最小值变了,而heatmap中颜色映射关系也会随之调整,将本图和上面的图进行对比便一目了然。

cmap:设置颜色带的色系

sns.heatmap(data=data,cmap="RdBu_r")

好像变好看了?

center:设置颜色带的分界线

sns.heatmap(data=data,cmap="RdBu_r",center=300)

细心的朋友可以察觉到颜色带上色彩两级的分界线变成了300

annot:是否显示数值注释

sns.heatmap(data=data,annot=True,cmap="RdBu_r")

怎么回事?乱码了吗?其实数值注释默认显示的是科学记数法的数值,我们得把数值进行格式化,这就用到了下面的参数。

fmt:format的缩写,设置数值的格式化形式

sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r")
#foramt为int类型

linewidths:控制每个小方格之间的间距

sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,cmap="RdBu_r")
#可以看到每个小方格之产生了间隙

linecolor:控制分割线的颜色

sns.heatmap(data=data,annot=True,fmt="d",linewidths=0.3,linecolor="grey",cmap="RdBu_r")
#原来的白色间隙变成了灰色间隙

cbar_kws:关于颜色带的设置

sns.heatmap(data=data,annot=True,fmt="d",cmap="RdBu_r",cbar_kws={"orientation":"horizontal"})
#横向显示颜色帮

ask:传入布尔型矩阵,若为矩阵内为True,则热力图相应的位置的数据将会被屏蔽掉(常用在绘制相关系数矩阵图)

import numpy as np
#随机生成一个200行10列的数据集
data_new = np.random.randn(200,10)
#求出这个数据集的相关系数矩阵 corr = np.corrcoef(data_new,rowvar=False)
#以corr的形状生成一个全为0的矩阵
mask = np.zeros_like(corr)
#将mask的对角线及以上设置为True
#这部分就是对应要被遮掉的部分mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):sns.heatmap(corr, mask=mask, vmax=0.3, annot=True,cmap="RdBu_r")

如果大家对上面的代码流程不大了解,可以把mask打印出来看看

参照mask和上面绘制的图,应该就很容易理解了,mask中为1的部分,就是要被盖掉的部分。演示到此为止,想更深入的学习可以自行查阅官方文档!

heatmap热力图相关推荐

  1. Heatmap热力图、pandas.DataFrame.corr()、皮尔森相关系数

    Heatmap热力图 Heatmap热力图是一个以颜色变化来显示数据的矩阵. matplotlib可通过以下两种方法绘制heamap: matplotlib.axes.Axes.imshow matp ...

  2. 关键点检测——heatmap热力图法

    一.数据集格式 二.解析xml文件,生成data_center.txt from PIL import Image import math,os from xml.etree import Eleme ...

  3. 相关系数矩阵与heatmap热力图

    在学习机器学习的过程中,我们需要观察特征之间的相似性.这时候python提供的seaborn.heatmap函数就可以帮助我们来查看特征之间的相似性. 1.官方API介绍 首先我们看一下 官方提供的h ...

  4. seaborn heatmap热力图用法

    https://blog.csdn.net/u011240016/article/details/83756548

  5. matplotlib 热力图_5分钟入门 Seaborn 热力图可视化

    Seaborn是基于matplotlib的Python可视化库.它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更 ...

  6. python 热力图_python数据分析:数据缺失机制及利用missingno库对缺失可视化

    缺失数据是一个非常普遍的问题,也是好多人不太能弄懂的问题,包括自己也是,为了加强理解,今天给大家写一写缺失数据的缺失机制,和在python中用missingno库对缺失数据可视化的操作方法. 数据缺失 ...

  7. Echarts数据可视化series-heatmap热力图,开发全解+完美注释

    全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...

  8. openlayers3 ol3热力图 json

    最近分配一个 gis地图的 任务,要我弄个热力图巨坑啊,当时就是没啥想,后来想想. 后面弄完 确实发现简单,为了方便广大网友 也方便自己写在博客 <body> <div class= ...

  9. openlayers热力图

    直接上代码: <!DOCTYPE html> <html> <head> <title>Earthquakes heatmap</title> ...

最新文章

  1. 1057. Stack (30)
  2. JDK, JRE 和JVM的区别
  3. 云计算还是python_云计算 与python
  4. 没有 4.21 ,Linus Torvalds 宣布 Linux 进入 5.0 时代
  5. JAVA多线程之wait/notify
  6. 宅家学习秘密武器!让时间从视频流和朋友圈中回到程序员的视野中吧!
  7. “约见”面试官系列之常见面试题第十一篇之canvas(建议收藏)
  8. Linux 查看系统硬件信息
  9. css3的新增选择器 200303
  10. 拓端tecdat|数据视域下图书馆话题情感分析
  11. Anylogic常见问题解决
  12. 手机查看pcap文件_Linux下如何操作 pcap 文件
  13. 一开电脑wifi就断网_为什么电脑一连wifi就断网,
  14. 获取空气质量站点数据 城市数据 日数据 时数据
  15. 获取和设置默认打印机
  16. 求三个数的最小公倍数的解法之美
  17. Python3.6 安装PIL
  18. java如何将中文转换成byte数组
  19. 如何补丁1个文件(linux diff patch)
  20. 销售经理应具备哪些技能

热门文章

  1. 使用最小二乘法和最大似然法估计非线性模型
  2. 【Pyecharts50例】GEO图中忽略不存在的位置
  3. 使用Visual Studio 2019创建安装程序的详细教程
  4. NPOI_Excel中设置小数、百分比、货币、日期、科学计数法和金额大写
  5. 介绍一个C++的ORM工具ODB(一) | C瓜哥的博客
  6. 本地通过cmd开启一个服务
  7. Linux S_ISVTX 黏着位的作用
  8. LitJson在Unity中的使用
  9. HTML中然后设置前景色,理解CSS前景色和透明度
  10. Matlab编程之混沌系统李雅普诺夫指数分析