You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter中Python Seaborn热力图未显示全部相关性问题求助

解决热力图无法显示所有关注列的问题

嘿,我明白你碰到的麻烦了——想展示特定列的相关性,结果热力图要么显示了全部列,要么关注的列没出全对吧?问题出在你直接用了整个数据集来计算相关矩阵,咱们只需要先筛选出你关心的列,再走后续流程就行,看我给你改改代码:

第一步:明确你关注的列

先把你想展示的列名列出来,替换成你实际需要的:

# 自定义你要展示的列列表
focus_columns = ["列A", "列B", "列C", "列D"]  # 换成你的真实列名

第二步:筛选数据并计算相关矩阵

用上面的列列表从原数据里提取子集,再计算相关性,这样corr就只包含你关注的列了:

sns.set(style="white")
# 先筛选关注的列,再计算相关矩阵
corr = data[focus_columns].corr()

第三步:保留后续的掩码、画布和色板设置

这部分你的代码没问题,直接复用就行:

# 生成上三角掩码
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True

# 设置matplotlib画布
f, ax = plt.subplots(figsize=(11, 9))

# 生成自定义发散色板
cmap = sns.diverging_palette(220, 10, as_cmap=True)

第四步:绘制热力图(可选优化标签显示)

如果列名太长导致挤在一起,别忘了加个标签旋转的设置,让可读性更好:

# 绘制热力图
sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,
            square=True, linewidths=.5, cbar_kws={"shrink": .5})
# 旋转x轴标签,避免重叠
plt.xticks(rotation=45, ha='right')
plt.show()

这样修改后,热力图就只会显示你指定的那些列啦!要是还有列显示不全的情况,你可以调大figsize里的数值,比如改成(15,12),给画布更多空间。

内容的提问来源于stack exchange,提问作者Christian Ulrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:34:27