热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python热力相关系数图_【Python可视化6】Seaborn之heatmap热力图

原标题:【Python可视化6】Seaborn之heatmap热力图Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力

原标题:【Python可视化6】Seaborn之heatmap热力图

Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。

注:所有代码均在IPython notebook中实现

· 正· 文· 来 · 啦 ·

heatmap 热力图

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

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

1importseaborn assns

2%matplotlib inline

3sns.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,

2vmax= 500)

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

cmap :设置颜色带的色系

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

好像变好看了?

center :设置颜色带的分界线

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

2center= 300)

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

annot :是否显示数值注释

1sns.heatmap(data=data,annot= True,

2cmap= "RdBu_r")

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

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

1sns.heatmap(data=data,annot= True,

2fmt= "d",cmap= "RdBu_r")

3#foramt为int类型

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

1sns.heatmap(data=data,annot= True,

2fmt= "d",linewidths= 0.3,

3cmap= "RdBu_r")

4#可以看到每个小方格之产生了间隙

linecolor :控制分割线的颜色

1sns.heatmap(data=data,annot= True,

2fmt= "d",linewidths= 0.3,

3linecolor= "grey",cmap= "RdBu_r")

4#原来的白色间隙变成了灰色间隙

cbar_kws :关于颜色带的设置

1sns.heatmap(data=data,annot= True,

2fmt= "d",cmap= "RdBu_r",

3cbar_kws={ "orientation": "horizontal"})

4#横向显示颜色帮

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

1importnumpy asnp

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)

10

11#将mask的对角线及以上设置为True

12#这部分就是对应要被遮掉的部分

13mask[np.triu_indices_from(mask)] = True

14

15withsns.axes_style( "white"):

16sns.heatmap(corr, mask=mask, vmax= 0.3,

17annot= True,cmap= "RdBu_r")

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

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

责任编辑:



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Ihaveapolynomial(generatedfromthecharacteristicpolynomialofamatrix)andIdliketosolve ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
author-avatar
keleisibuo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有