热力图Y轴异常求助:如何使X、Y轴保持一致?
解决热力图X/Y轴不一致的问题
问题原因
你当前直接传入sns.heatmap的是原始缩放后的数据集(包含2000+个样本行、9个特征列),seaborn默认会把每一行样本作为Y轴刻度,每一列特征作为X轴刻度,因此呈现的是「样本×特征」的热力图,而非你期望的「特征×特征」列间对比矩阵。
解决方案
要实现9列特征间的对比,需要先计算特征的相关系数矩阵(或其他特征间统计量矩阵),再将该矩阵传入热力图函数:
步骤1:计算特征相关系数矩阵
# 计算各特征间的皮尔逊相关系数,得到9×9的对称矩阵 corr_matrix = df_scaled.corr()
步骤2:绘制特征对比热力图
import seaborn as sns import matplotlib.pyplot as plt # 传入相关系数矩阵,设置annot=True可显示具体系数值 heat = sns.heatmap(data=corr_matrix, annot=True, cmap='coolwarm') plt.show()
补充说明
- 如果需要其他类型的特征间对比矩阵,可替换为对应计算方法,比如协方差矩阵
df_scaled.cov(); cmap参数可调整热力图颜色风格,常见可选值还有'viridis'、'Blues'等;annot=True用于显示每个单元格的具体数值,若不需要可省略该参数。
内容的提问来源于stack exchange,提问作者Kelven Lim
相关产品推荐
相关产品推荐

