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