线性回归项目热力图异常求助:图偏黑且侧边显示数字而非列名
解决热力图偏黑+显示数字而非列名的问题
你的问题根源有两个:
- 直接用原始数据集绘制热力图,而非相关性矩阵,数据数值范围差异过大导致颜色偏黑;
- 图表尺寸太小,列名显示不下被自动替换成了索引数字。
直接修改代码中的热力图部分即可,完整修改后的代码如下:
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import missingno data = pd.read_csv('student-mat.csv',sep=";") print(data.info()) print(data.columns) data = data[['school', 'sex','reason','studytime','internet', 'romantic','famrel','health','absences','failures','paid','higher','G1','G2','G3']] data = pd.get_dummies(data, columns=['school', 'sex','paid', 'higher', 'internet', 'romantic', 'reason'], drop_first=True, dtype=int) # 计算各列的相关性矩阵,这才是你需要的分析数据 corr_matrix = data.corr() # 调整图表尺寸,给列名留出足够显示空间 plt.figure(figsize=(12, 8)) # 绘制相关性热力图:使用冷暖配色避免偏黑,显示相关系数数值,指定刻度标签为列名 sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', xticklabels=data.columns, yticklabels=data.columns) # 旋转x轴标签,避免文字重叠 plt.xticks(rotation=45, ha='right') plt.show()
关键修改说明:
- 用
data.corr()生成皮尔逊相关系数矩阵,这才是能体现各列相关性的核心数据; - 增大
figsize参数,解决列名显示不下的问题; - 替换默认配色为
coolwarm,避免大面积深色,同时开启annot=True直接显示相关系数数值; - 显式指定刻度标签为数据集列名,配合旋转标签操作,彻底解决侧边显示数字的问题。
内容的提问来源于stack exchange,提问作者fjq
相关产品推荐
相关产品推荐

