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

Seaborn热图如何调整水平colorbar位置使其更靠近热图底部

解决Seaborn热图水平色条距离过远的方法

你可以通过调整sns.heatmap的cbar_kws参数中的pad属性控制水平色条与热图的间距,pad数值越小,色条越靠近热图。

将你代码中绘制热图的部分修改为如下内容即可:

sns.heatmap(Granger2, cmap=rvb, cbar=True, ax=ax,linewidths=.5,
            cbar_kws={"orientation": "horizontal", "pad": 0.1})
  • pad的默认值约为0.15,你可以根据实际显示效果向下调整(比如设为0.08、0.05),直到间距符合预期。

如果调整pad后仍无法满足需求,你可以手动指定色条的坐标位置,完全自定义间距:

import seaborn as sns
import matplotlib.pyplot as plt

Granger2 = Granger
Granger2.columns = Granger_colnames
Granger2.index = Granger_rownames

fig, ax = plt.subplots(figsize=(6,25)) 
# 先绘制热图,暂时不生成色条
sns.heatmap(Granger2, cmap=rvb, cbar=False, ax=ax,linewidths=.5)
ax.xaxis.tick_top() # x轴放置在顶部
ax.xaxis.set_label_position('top')

# 移除刻度线
ax.tick_params(axis='both', which='both', length=0)

# 绘制边框
ax.axhline(y = 0, color='k',linewidth = 1)
ax.axhline(y = Granger2.shape[0], color = 'k',linewidth = 1)  
ax.axvline(x = 0, color = 'k', linewidth = 1)
ax.axvline(x = Granger2.shape[1], color = 'k', linewidth = 1)

# 手动添加色条,自定义位置:[左边界, 下边界, 宽度, 高度],可按需调整数值
cbar_ax = fig.add_axes([0.2, 0.02, 0.6, 0.01])
fig.colorbar(ax.collections[0], cax=cbar_ax, orientation='horizontal')

plt.show()
  • 上述代码中fig.add_axes的第二个参数为色条下边界的相对位置,数值越大,色条越靠近热图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:36:04