【python】python绘制相关性热力图
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绘制相关性热力图相关推荐
- 使用Origin绘制相关性热力图:Correlation Plot (附工具下载及安装步骤)
相关性热图在很多文章中都有出现,一般都是使用R或者matlab语言进行绘制.在origin中也可以进行同样的绘制,详细过程如下: 1. 首先将待计算的数据导入origin中,然后选中数据,在主界面的右 ...
- python相关性分析_python实践统计学中的三大相关性系数,并绘制相关性分析的热力图...
本文首发地址: https://yishuihancheng.blog.csdn.net/article/details/83547648 欢迎关注我的博客[Together_CZ],我是沂水寒城! ...
- Python使用matplotlib可视化相关性分析热力图图heatmap、使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)
Python使用matplotlib可视化相关性分析热力图图heatmap.使用seaborn中的heatmap函数可视化相关性热力图(Correllogram) 目录
- python热力图背景_python 绘制场景热力图的示例
我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...
- python绘制相关系数热力图
python绘制相关系数热力图 一.数据说明和需要安装的库 二.准备绘图 三.设置配色,画出多幅图 全部代码: 本文讲述如何利用python绘制如上的相关系数热力图 一.数据说明和需要安装的库 数据是 ...
- python根据经纬度画热力图_python 绘制场景热力图的示例
我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...
- Python+matplotlib绘制函数曲线查找函数极值
推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...
- python sns绘制回归线_【干货!】用Python演绎5种常见可视化视图
- 点击上方"中国统计网"订阅我吧!- 通过本篇文章,你将学到: 视图的分类,从哪些维度进行分类 5种常见视图的概念,以及如何在Python中进行使用,都需要用到哪些函数. 注意: ...
最新文章
- 将项目通过git上传到bitbucket仓库 (附图)
- 独家 | 2021年打破了零日黑客攻击的记录
- 【好文】带你用Python开发个机器学习软件!
- CentOS 6.x使用yum快速安装MySQL 5.5
- docker hub 国内镜像_Mac设置docker国内镜像源
- 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...
- Java学习_int和Integer的区别+包装类
- 并不算复杂的正则表达式基础
- 想用Python爬小姐姐图片?那你得先搞定分布式进程
- python面试题之docstring是什么?
- Nginx反向代理及简单负载均衡配置
- Teraco公司投资9000万美元扩建其在南非数据中心
- Android JNI作用及其详解
- [转]mysql慢查询日志
- 17. Store newed objects in smart pointers in standalone statements
- ceb2Pdf.exe实现ceb文件转pdf,内网离线安装wine(手动编译32位)实现在centos(linux)上运行window程序exe程序,解决wine : Z:\xxx EXE格式无效
- html学校图标的代码,学校查询网代码查询_小学学校的代码如何查询?
- 推荐一款自己开发的剪映字幕翻译工具
- html 免备案,域名没有备案使用cdn(免备案cdn推荐)
- TOC视角:巴顿将军的管理角色-----项目关键链(转)