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

如何为多个等值线子图添加单个统一颜色条

如何为多个等值线子图添加单个统一颜色条

嗨,这个需求太常见啦!我给你分享两种实用的方案,既能实现统一颜色条,还能让整体布局更美观~

首先要提个关键前提:一定要让三个子图的颜色映射范围保持一致,不然颜色条对应不上不同子图的数值,就失去统一颜色条的意义啦。所以你需要先计算所有数据的最小和最大值,然后在每个contourf里指定vmin和vmax参数。

方案一:直接用fig.colorbar快速实现

这种方法最简单,直接通过fig.colorbar把颜色条绑定到所有子图上,还能灵活调整位置和方向:

import matplotlib.pyplot as plt
import numpy as np

# 模拟你的数据(假设lon、lat、A/B/C是已有的数据)
lon = np.linspace(-180, 180, 100)
lat = np.linspace(-90, 90, 50)
A = np.random.randn(50,100)*10
B = np.random.randn(50,100)*10
C = np.random.randn(50,100)*10

# 统一颜色范围
vmin = np.min([A, B, C])
vmax = np.max([A, B, C])

fig, ax = plt.subplots(1,3,figsize=(12,4))
X,Y=np.meshgrid(lon,lat)

# 绘制子图时统一vmin和vmax
P1=ax[0].contourf(X,Y,A, vmin=vmin, vmax=vmax) 
ax[0].set_title('Plot A')
P2=ax[1].contourf(X,Y,B, vmin=vmin, vmax=vmax)
ax[1].set_title('Plot B')
P3=ax[2].contourf(X,Y,C, vmin=vmin, vmax=vmax)
ax[2].set_title('Plot C')

# 添加统一颜色条
# ax=ax表示把颜色条放在所有子图的旁边;shrink调整颜色条的长度;orientation可选'horizontal'(水平)或'vertical'(垂直)
fig.colorbar(P1, ax=ax, orientation='vertical', shrink=0.8, label='Value')

plt.tight_layout()
plt.show()

方案二:用make_axes_locator实现完美对齐

如果想让颜色条的高度和子图完全匹配,看起来更精致,可以用matplotlib的axes_grid1工具包:

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

# 同样先统一颜色范围
vmin = np.min([A, B, C])
vmax = np.max([A, B, C])

fig, ax = plt.subplots(1,3,figsize=(12,4))
X,Y=np.meshgrid(lon,lat)

P1=ax[0].contourf(X,Y,A, vmin=vmin, vmax=vmax) 
ax[0].set_title('Plot A')
P2=ax[1].contourf(X,Y,B, vmin=vmin, vmax=vmax)
ax[1].set_title('Plot B')
P3=ax[2].contourf(X,Y,C, vmin=vmin, vmax=vmax)
ax[2].set_title('Plot C')

# 创建一个轴定位器,绑定到最后一个子图
divider = make_axes_locator(ax[-1])
# 在子图右侧添加一个新的轴,用于放置颜色条;size是颜色条宽度,pad是和子图的间距
cax = divider.append_axes("right", size="5%", pad=0.05)
# 把颜色条放在这个新轴里
fig.colorbar(P3, cax=cax, label='Value')

plt.tight_layout()
plt.show()

两种方法都能实现你的需求,第一种快,第二种更美观,你可以根据自己的布局需求选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 08:14:53