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

Python单图中水平与垂直Colorbar的调整:解决水平色条的间距与长度问题

Python单图中水平与垂直Colorbar的调整:解决水平色条的间距与长度问题

我明白你遇到的问题了——水平色条和主图贴得太紧,长度还超出了主图宽度,这确实影响可视化的整洁度。咱们来修改代码解决这两个问题:

核心问题出在add_colorbar函数里水平色条的间距(pad)和尺寸(size)计算逻辑上,原来的参数设置导致间距过小、尺寸匹配失衡。我们可以改用更直观的百分比定义色条参数,同时确保水平色条长度与主图宽度完全对齐。

下面是修改后的完整代码:

import matplotlib.pyplot as plt
from mpl_toolkits import axes_grid1
import seaborn as sns
import numpy as np

def add_colorbar(im, pad_fraction=0.1, orientation='vertical', **kwargs):
    """Add a color bar to an image plot with horizontal/vertical options."""
    divider = axes_grid1.make_axes_locatable(im.axes)
    
    if orientation == 'horizontal':
        # 水平色条:高度设为主图的5%,垂直间距为主图高度的10%
        cax = divider.append_axes("bottom", size="5%", pad=pad_fraction)
    else:
        # 垂直色条:宽度设为主图的5%,水平间距为主图宽度的5%
        cax = divider.append_axes("right", size="5%", pad=pad_fraction)
    
    return im.axes.figure.colorbar(im, cax=cax, orientation=orientation, **kwargs)

# 生成测试数据
x_values = np.random.rand(100)
y_values = np.random.rand(100)
size_values = np.random.rand(100)
kd = np.random.rand(100, 2)

# 创建画布与轴
fig, ax = plt.subplots(figsize=(8, 8))

# 绘制KDE图
kde = sns.kdeplot(x=kd[:, 0], y=kd[:, 1], fill=True, cmap='crest', bw_adjust=0.5, alpha=0.7, ax=ax)

# 添加水平色条(调整间距为10%主图高度)
add_colorbar(kde.collections[0], orientation='horizontal', pad_fraction=0.1)

# 绘制散点图(调整点大小让可视化更清晰)
scatter = ax.scatter(x_values, y_values, s=20, c=size_values, cmap='plasma', alpha=0.8, edgecolor='black', linewidth=0.5, label='Empirical Data')

# 添加垂直色条
add_colorbar(scatter, orientation='vertical', pad_fraction=0.05)

plt.legend()
plt.show()

关键修改说明:

  • 间距调整:通过pad_fraction参数控制色条与主图的间距,水平色条设为0.1(即主图高度的10%作为垂直空隙),你可以根据需求调整这个数值(比如0.15会留出更宽的空隙)。
  • 长度匹配:改用size="5%"的百分比方式定义色条尺寸,水平色条会自动和主图宽度保持一致,不会出现超出范围的问题;垂直色条的宽度也会匹配主图比例。
  • 简化逻辑:去掉了原函数中复杂的aspect和AxesX/AxesY计算,改用百分比设置更直观,后续调整参数也更方便。
  • 额外调整了散点的s值(从2改为20),让散点更清晰,你可以根据实际数据改回原数值。

这样修改后,水平色条会与主图保持合适的垂直间距,长度完全匹配主图宽度,两个色条的布局会更协调美观。

备注:内容来源于stack exchange,提问作者skm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:53:02