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

如何缩小Matplotlib子图与colorbar之间的间距?

解决Matplotlib中子图与Colorbar间距过大的问题

方法一:使用make_axes_locatable(推荐)

这个工具能让Colorbar与子图高度自动匹配,同时通过pad参数精准控制间距,是最常用的解决方案。

示例代码:

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np

# 创建子图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))

# 生成示例数据
data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)

im1 = ax1.imshow(data1)
im2 = ax2.imshow(data2)

# 为第一个子图创建Colorbar容器
divider1 = make_axes_locatable(ax1)
# size控制Colorbar宽度,pad控制子图与Colorbar的间距(数值越小间距越小)
cax1 = divider1.append_axes("right", size="5%", pad=0.1)
fig.colorbar(im1, cax=cax1)

# 为第二个子图创建Colorbar容器
divider2 = make_axes_locatable(ax2)
cax2 = divider2.append_axes("right", size="5%", pad=0.1)
fig.colorbar(im2, cax=cax2)

plt.show()

方法二:直接调整Colorbar的pad与shrink参数

调用fig.colorbar()时,通过pad控制子图与Colorbar的间距,shrink让Colorbar高度适配子图,避免出现错位。

示例代码:

import matplotlib.pyplot as plt
import numpy as np

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))

data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)

im1 = ax1.imshow(data1)
im2 = ax2.imshow(data2)

# pad:子图与Colorbar的间距,shrink:缩放Colorbar高度以匹配子图
cbar1 = fig.colorbar(im1, ax=ax1, shrink=0.8, pad=0.02)
cbar2 = fig.colorbar(im2, ax=ax2, shrink=0.8, pad=0.02)

# 同时调整子图之间的间距
plt.subplots_adjust(wspace=0.2)

plt.show()

方法三:使用GridSpec精确布局

通过GridSpec将Colorbar作为独立的网格单元,统一控制所有元素的宽度比例和间距,适合复杂布局场景。

示例代码:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

fig = plt.figure(figsize=(8, 4))
# 1行4列网格,前两列是子图,后两列是Colorbar,宽度比例4:4:1:1;wspace控制所有列间距
gs = gridspec.GridSpec(1, 4, width_ratios=[4, 4, 1, 1], wspace=0.1)

ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1])
cax1 = fig.add_subplot(gs[2])
cax2 = fig.add_subplot(gs[3])

data1 = np.random.rand(10, 10)
data2 = np.random.rand(10, 10)

im1 = ax1.imshow(data1)
im2 = ax2.imshow(data2)

fig.colorbar(im1, cax=cax1)
fig.colorbar(im2, cax=cax2)

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:52:17