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

seaborn双colorbar热力图左侧Blues色条重叠热力图如何调整位置

seaborn双热力图左侧色条重叠调整方法

问题说明

在同一坐标轴绘制两组独立数据集的seaborn热力图,为两组数据配置独立colorbar时,放置在左侧、使用Blues配色的色条与热力图主绘图区域发生重叠,需要将色条向左微调增加间距。

问题复现代码

fig, ax = plt.subplots(1,figsize = (8,9))

sb.heatmap(data = df1, linewidth = 0.0, vmin=0, cmap = 'Blues', 
           cbar_kws = dict(use_gridspec = False, location = "left"), robust = False)
sb.heatmap(data = df2, linewidth = 0.0, vmin=0,  cmap = 'Reds', robust = False)

cbar1 = ax.collections[0].colorbar
cbar2 = ax.collections[1].colorbar

plt.show()

重叠效果参考

带重叠色条的热力图

解决方法

  • 方法一(推荐):直接在左侧色条的cbar_kws配置中新增pad参数控制间距
    当设置use_gridspec=False时,pad参数专门用于控制色条与主绘图区的距离,数值越大间距越宽,常规设置0.08~0.12即可解决重叠问题,适配不同画布尺寸的稳定性更好。
    调整后的核心代码:
    sb.heatmap(data = df1, linewidth = 0.0, vmin=0, cmap = 'Blues', 
               cbar_kws = dict(use_gridspec = False, location = "left", pad=0.1), 
               robust = False)
    
  • 方法二:手动修改色条坐标轴位置实现精细偏移
    如果需要自定义偏移幅度,可以在获取色条对象后,直接调整色条对应坐标轴的左边界坐标,数值越小色条越靠左。
    代码示例:
    cbar1 = ax.collections[0].colorbar
    # 读取当前色条轴的位置参数:[左边界, 下边界, 宽度, 高度]
    current_pos = cbar1.ax.get_position()
    # 左边界数值减0.06即向左偏移0.06个单位,可根据实际效果微调
    cbar1.ax.set_position([current_pos.x0 - 0.06, current_pos.y0, current_pos.width, current_pos.height])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:45:46