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 热力图可视化相关推荐

  1. python 计算每日累计_5分钟学会用Python可视化数据分析美股

    翻译:孟家慧 校对:Jack.Brow 作者:Gayan Samarakoon 这是一个股票市场入门分析项目,旨在应用Python编程的基础知识分析金融市场的数据. 第0部分:导入必要的模块 第1部分 ...

  2. 使用Matplotlib让你轻松入门Python数据可视化

    Matplotlib matplotlib开发环境搭建 绘制基础 绘制直线 绘制折线 设置标签文字和线条粗细 绘制一元二次方程的曲线y=x^2 绘制正弦曲线和余弦曲线 散点图 绘制柱状图 绘制饼状图 ...

  3. mysql workbench入门_5分钟入门MySQL Workbench

    接下来进入下一步,使用Workbench执行sql文件: 1.打开Workbench,主页面上点击要connect的连接. 2.注意系统偏好设置里,MySQL是running的状态,否则无法执行. 创 ...

  4. python用excel数据做热力图_7行代码 Python热力图可视化分析缺失数据处理-Python 实用宝典...

    Python热力图寻找缺失数据 你有没有遇到一种情况,处理一张很大的csv表格的时候很难找到表格中每一列的缺失数据,或者说处理速度非常慢 ?当然如果你的Excel水平非常高,这个可能不会成为你的问题, ...

  5. matplotlib学习笔记(3)---热力图(Heat Map)

    matplotlib学习笔记(3)-热力图(Heat Map) import matplotlib.pylab as plt import seaborn as sns import numpy as ...

  6. Seaborn数据可视化

    目录 前言 1.安装 2.快速上手 2.1 模式设置 2.2 线形图 3.各种图形绘制 3.1 调色板 3.2 线形图 3.3 散点图 3.4 柱状图 3.5 箱式图 3.6 直方图 3.7 分类散点 ...

  7. Seaborn数据可视化,举例剖析

    Seaborn数据可视化 单纯去使用matplotlib绘制图像,画出来是可以了,但是人们往往会去追求最佳实践,为了简化代码操作,所以就有了基于matplotlib的"装饰库"-- ...

  8. Plotly+Seaborn+Folium可视化探索爱彼迎租房数据

    Airbnb是AirBed and Breakfast ( "Air-b-n-b" )的缩写,中文名称之为:空中食宿,是一家联系旅游人士和家有空房出租的服务型网站,可以为用户提供各 ...

  9. 可下载:60分钟入门PyTorch(中文翻译全集)

    来源:机器学习初学者本文约9500字,建议阅读20分钟官网教程翻译:60分钟入门PyTorch(全集) 前言 原文翻译自:Deep Learning with PyTorch: A 60 Minute ...

最新文章

  1. react es6+ 代码优化之路-1
  2. 被人画是怎样一种体验?
  3. UML分析AsyncDisplayKit框架-ASMuplexImageNode异步下载时序图。
  4. 转:聊聊开发中幂等性问题(*)
  5. ES查询-基本查询续
  6. Java基础学习总结(113)——异常最佳实践
  7. 游戏计算机软著登记证书,“VR沙盘游戏心理疗法软件”取得计算机软件著作权登记证书...
  8. Go语言的线程模型-线程阻塞+线程调度
  9. c++用化简命题逻辑公式的方法设计一个5人表决开关电路,要求3人以上(含3人)同意则表决通过
  10. Zabbix4.0安装教程
  11. 清华大学计算机系网络课程,资源分享:清华大学计算机系网络课程.pdf
  12. 电脑前面板耳机没声音
  13. 利用Python爬取网页内容
  14. 一块硬盘的爱情故事,好揪心
  15. 作为 IT 从业人员,你觉得有什么工具大大提高了你的工作效率?
  16. 博弈对抗游戏AI的技术方法的一些总结和思考
  17. 如何编写一个Java帮助文档
  18. 中考计算机加试及格多少分,中考总分多少 中考各科分数是多少
  19. python3继承supper_python3中supper和继承顺序
  20. 真正的老开发:一个无名Android开发的10年程序生涯,走了不少弯路所幸仍在岸上(1)

热门文章

  1. Alibaba 开源工具 Arthas 使用
  2. ASP调用.Net dll
  3. redis 缓存 key常量命名规则
  4. 搭建jenkins+gitlab+tomcat+maven步骤
  5. leetcode 203 移除链表元素 C++
  6. java 不同分辨率_java9新特性-14-多分辨率图像 API
  7. 【离散数学中的数据结构与算法】三 同余定理
  8. 线程高级篇-Lock锁和Condition条件
  9. 【LintCode题集】Q6、Q64
  10. hdu 1874(Dijkstra + Floyd)