Python绘制相关系数热力图

相关系数热力图是一种可视化工具,用于展示变量之间的相关性。它在数据分析和统计中非常有用,尤其是在探索数据集的内在关系时。本文将介绍如何使用Python绘制相关系数热力图。

一、准备——导入库

使用Pandas来处理数据,Matplotlib和Seaborn来进行绘图。

pip install pandas matplotlib seaborn
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

二、实例数据创建

随机创建:

#设置随机数以保证结果可重复
np.random.seed(0)

#创建一个包含4个变量的随机数据集
data = pd.DataFrame({
    'A': np.random.rand(100),
    'B': np.random.rand(100),
    'C': np.random.rand(100),
    'D': np.random.rand(100)
})

读取Excel文件:

file_path = 'data.xlsx'
data = pd.read_excel(file_path)

三、计算相关系数矩阵

相关系数矩阵是一个对称矩阵,其中的元素表示每对变量之间的相关性

corr = data.corr()
print(corr)

四、绘制

# 设置绘图风格
sns.set(style='white')

# 创建一个画布
plt.figure(figsize=(8, 6))

# 绘制热力图
sns.heatmap(corr, annot=True, fmt=".2f", cmap='coolwarm', vmin=-1, vmax=1, square=True, linewidths=.5)

# 添加标题
plt.title('Correlation Heatmap')

# 显示热力图
plt.show()

附录:

sns.set(style='white'):设置Seaborn的绘图风格为白色背景。
plt.figure(figsize=(8, 6)):创建一个大小为8x6的画布。
sns.heatmap(corr, annot=True, fmt=".2f", cmap='coolwarm', vmin=-1, vmax=1, square=True, linewidths=.5):绘制热力图。
corr:相关系数矩阵。
annot=True:在每个单元格显示相关系数值。
fmt=".2f":相关系数值的格式,保留两位小数。
cmap='coolwarm':颜色映射,coolwarm在负相关(蓝色)和正相关(红色)之间进行渐变。
vmin=-1和vmax=1:设置颜色条的最小值和最大值。
square=True:每个单元格为正方形。
linewidths=.5:单元格之间的分隔线宽度。
plt.title('Correlation Heatmap'):添加热力图标题。
plt.show():显示热力图

五、完整实例

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 读取Excel文件
file_path = 'data.xlsx'
data = pd.read_excel(file_path)

# 计算相关系数矩阵
corr = data.corr()

# 设置绘图风格和大小
sns.set(style='whitegrid', font_scale=1.2)
plt.figure(figsize=(10, 8))

# 绘制热力图
heatmap = sns.heatmap(corr, 
                      annot=True, 
                      fmt=".2f", 
                      cmap='coolwarm', 
                      vmin=-1, 
                      vmax=1, 
                      square=True, 
                      linewidths=.5, 
                      cbar_kws={"shrink": .75})

# 添加标题和标签
plt.title('Correlation Heatmap', fontsize=20)
plt.xticks(rotation=45, ha='right')
plt.yticks(rotation=0)

# 调整布局以适应标签
plt.tight_layout()

# 显示热力图
plt.show()

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 04:30:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 04:30:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 04:30:02       57 阅读
  4. Python语言-面向对象

    2024-07-16 04:30:02       68 阅读

热门阅读

  1. 数据流通环节如何规避安全风险

    2024-07-16 04:30:02       20 阅读
  2. Linux0715

    Linux0715

    2024-07-16 04:30:02      21 阅读
  3. SQL日期函数

    2024-07-16 04:30:02       24 阅读
  4. Integrated Gradients (Pytorch)refs

    2024-07-16 04:30:02       24 阅读
  5. ICPC铜牌算法

    2024-07-16 04:30:02       21 阅读
  6. centos7中MySQL的卸载

    2024-07-16 04:30:02       23 阅读
  7. Go语言入门之流程控制简述

    2024-07-16 04:30:02       29 阅读