1.介绍

  热力图(heatmap),又称相关系数图,根据热力图中不同方块颜色对应的相关系数的大小,可以判断出变量之间相关性的大小。热力图通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的规则。例如,较大的值由较深的颜色表示,较小的值由较浅的颜色表示;较大的值由偏暖的颜色表示,较小的值由较冷的颜色表示等。

  热力图可通过颜色深浅变化,优雅地展示数据的差异。热力图适合用于查看总体的情况、发现异常值、显示多个变量之间的差异,以及检测它们之间是否存在任何相关性。

  值得注意的是,绘制热力图时,建议选择恰当的调色板,既在视觉上便于区分,也符合所要传达的主旨。

2. 代码

  两个变量之间协方差和标准差的商,皮尔逊相关系数计算公式:

  我们以California房价数据集为例,绘制热力图,代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Aug  9 09:19:07 2022@author: augustqi
""""""
python==3.9.0
scikit-learn==1.0.2
numpy==1.22.3
pandas==1.4.2
matplotlib==3.5.1
"""from sklearn.datasets import load_boston
from sklearn.datasets import fetch_california_housing
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns# housing = load_boston()
housing = fetch_california_housing()
X = housing.data
y = housing.target
print("特征名:", housing.feature_names)# 数据转为数据表
X_df = pd.DataFrame(data=X, columns=housing.feature_names)
X_df['target'] = y# 求相关性
data_coor = np.corrcoef(X_df.values, rowvar=0)
data_coor = pd.DataFrame(data=data_coor, columns=X_df.columns, index=X_df.columns)
plt.figure(figsize=(8, 6), facecolor='w') # 底色white
ax = sns.heatmap(data_coor, square=True, annot=True, fmt='.3f', linewidth=1, cmap='winter',linecolor='white', cbar=True,annot_kws={'size':10,'weight':'normal','color':'white'},cbar_kws={'fraction':0.046, 'pad':0.03})
# square=True, 热力图呈现正方形
# annot=True, 热力图上显示数据, True:每个格子上写入数据
# fmt='.3f',热力图上的数据保留3位有效数字
# linewidth=1, 每个格子外框宽度,默认为0
# linecolor='white',每个格子边框颜色,默认白色
# cbar=True, 右侧图例开关,默认True
# annot_kws. 格子中数据字体大小、磅值、颜色设置
# cbar_kws, 图例位置、名称、标签设置
# cmap='YlGnBu', 热图颜色盘,控制热图颜色, cmap取值为:
"""
'Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r',
'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r',
'Greens', 'Greens_r', 'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges',
'Oranges_r', 'PRGn', 'PRGn_r', 'Paired', 'Paired_r', 'Pastel1', 'Pastel1_r',
'Pastel2', 'Pastel2_r', 'PiYG', 'PiYG_r', 'PuBu', 'PuBuGn', 'PuBuGn_r',
'PuBu_r', 'PuOr', 'PuOr_r', 'PuRd', 'PuRd_r', 'Purples', 'Purples_r', 'RdBu',
'RdBu_r', 'RdGy', 'RdGy_r', 'RdPu', 'RdPu_r', 'RdYlBu', 'RdYlBu_r', 'RdYlGn',
'RdYlGn_r', 'Reds', 'Reds_r', 'Set1', 'Set1_r', 'Set2', 'Set2_r', 'Set3',
'Set3_r', 'Spectral', 'Spectral_r', 'Wistia', 'Wistia_r', 'YlGn', 'YlGnBu',
'YlGnBu_r', 'YlGn_r', 'YlOrBr', 'YlOrBr_r', 'YlOrRd', 'YlOrRd_r', 'afmhot',
'afmhot_r', 'autumn', 'autumn_r', 'binary', 'binary_r', 'bone', 'bone_r',
'brg', 'brg_r', 'bwr', 'bwr_r', 'cividis', 'cividis_r', 'cool', 'cool_r',
'coolwarm', 'coolwarm_r', 'copper', 'copper_r', 'crest', 'crest_r',
'cubehelix', 'cubehelix_r', 'flag', 'flag_r', 'flare', 'flare_r', 'gist_earth',
'gist_earth_r', 'gist_gray', 'gist_gray_r', 'gist_heat', 'gist_heat_r',
'gist_ncar', 'gist_ncar_r', 'gist_rainbow', 'gist_rainbow_r', 'gist_stern',
'gist_stern_r', 'gist_yarg', 'gist_yarg_r', 'gnuplot', 'gnuplot2', 'gnuplot2_r',
'gnuplot_r', 'gray', 'gray_r', 'hot', 'hot_r', 'hsv', 'hsv_r', 'icefire',
'icefire_r', 'inferno', 'inferno_r', 'jet', 'jet_r', 'magma', 'magma_r', 'mako',
'mako_r', 'nipy_spectral', 'nipy_spectral_r', 'ocean', 'ocean_r', 'pink',
'pink_r', 'plasma', 'plasma_r', 'prism', 'prism_r', 'rainbow', 'rainbow_r',
'rocket', 'rocket_r', 'seismic', 'seismic_r', 'spring', 'spring_r', 'summer',
'summer_r', 'tab10', 'tab10_r', 'tab20', 'tab20_r', 'tab20b', 'tab20b_r',
'tab20c', 'tab20c_r', 'terrain', 'terrain_r', 'turbo', 'turbo_r', 'twilight',
'twilight_r', 'twilight_shifted', 'twilight_shifted_r', 'viridis', 'viridis_r',
'vlag', 'vlag_r', 'winter', 'winter_r'
"""plt.rcParams['font.sans-serif']= ['Times New Roman']    # 设置字体
# plt.rcParams['font.sans-serif']= ['Arial Unicode MS'] # 显示中文
plt.xticks(rotation=45)  # x轴的标签旋转45度
plt.savefig("heatmap_california.png", dpi=600)
plt.show()

3.结果

绘制的热力图为:

从热力图上可以看到,和target相关性最大的是MedInc(收入中位数)变量;AveRooms和AveBedrms两个变量的正相关性较强。

文章首发于微信公众号:AIexplore
https://mp.weixin.qq.com/s/kRL3A9iH_LhxbQbCa6vJsA

参考资料

[1]https://matplotlib.org/stable/gallery/images_contours_and_fields/image_annotated_heatmap.html
[2]https://zhuanlan.zhihu.com/p/506059576
[3]https://zhuanlan.zhihu.com/p/364624304
[4]https://zhuanlan.zhihu.com/p/165426873

【python】python绘制相关性热力图相关推荐

  1. 使用Origin绘制相关性热力图:Correlation Plot (附工具下载及安装步骤)

    相关性热图在很多文章中都有出现,一般都是使用R或者matlab语言进行绘制.在origin中也可以进行同样的绘制,详细过程如下: 1. 首先将待计算的数据导入origin中,然后选中数据,在主界面的右 ...

  2. python相关性分析_python实践统计学中的三大相关性系数,并绘制相关性分析的热力图...

    本文首发地址: https://yishuihancheng.blog.csdn.net/article/details/83547648 欢迎关注我的博客[Together_CZ],我是沂水寒城! ...

  3. Python使用matplotlib可视化相关性分析热力图图heatmap、使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)

    Python使用matplotlib可视化相关性分析热力图图heatmap.使用seaborn中的heatmap函数可视化相关性热力图(Correllogram) 目录

  4. python热力图背景_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  5. python绘制相关系数热力图

    python绘制相关系数热力图 一.数据说明和需要安装的库 二.准备绘图 三.设置配色,画出多幅图 全部代码: 本文讲述如何利用python绘制如上的相关系数热力图 一.数据说明和需要安装的库 数据是 ...

  6. python根据经纬度画热力图_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  7. Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略

    Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...

  8. Python+matplotlib绘制函数曲线查找函数极值

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...

  9. python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图

    - 点击上方"中国统计网"订阅我吧!- 通过本篇文章,你将学到: 视图的分类,从哪些维度进行分类 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数. 注意: ...

最新文章

  1. 将项目通过git上传到bitbucket仓库 (附图)
  2. 独家 | 2021年打破了零日黑客攻击的记录
  3. 【好文】带你用Python开发个机器学习软件!
  4. CentOS 6.x使用yum快速安装MySQL 5.5
  5. docker hub 国内镜像_Mac设置docker国内镜像源
  6. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...
  7. Java学习_int和Integer的区别+包装类
  8. 并不算复杂的正则表达式基础
  9. 想用Python爬小姐姐图片?那你得先搞定分布式进程
  10. python面试题之docstring是什么?
  11. Nginx反向代理及简单负载均衡配置
  12. Teraco公司投资9000万美元扩建其在南非数据中心
  13. Android JNI作用及其详解
  14. [转]mysql慢查询日志
  15. 17. Store newed objects in smart pointers in standalone statements
  16. ceb2Pdf.exe实现ceb文件转pdf,内网离线安装wine(手动编译32位)实现在centos(linux)上运行window程序exe程序,解决wine : Z:\xxx EXE格式无效
  17. html学校图标的代码,学校查询网代码查询_小学学校的代码如何查询?
  18. 推荐一款自己开发的剪映字幕翻译工具
  19. html 免备案,域名没有备案使用cdn(免备案cdn推荐)
  20. TOC视角:巴顿将军的管理角色-----项目关键链(转)

热门文章

  1. oracle如何进行多列分组统计,ORACLE分组统计
  2. 参加“首届中国云测试行业峰会”有感
  3. 养鸡场的计算机管理,养鸡场管理系统7.3 免费版
  4. 大厂对外提供的API接口入参命名规范
  5. 详解Guitar Pro显示和弦图的步骤
  6. ESSAY[000004]
  7. 毕业设计 基于单片机的风速测量系统 - 物联网 嵌入式 stm32 arduino
  8. idea打开接口实现类快捷键
  9. Pandas——ix vs loc vs iloc区别
  10. 刘未鹏逃出肖申克系列链接