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

matplotlib 3.3+调用Colorbar.set_clim报错,如何修改色阶量程

问题原因

matplotlib 3.3及以上版本重构了ColorBar的API,移除了ColorBar对象的set_clim方法,色阶量程的调整逻辑被统一收敛到与ColorBar绑定的可映射对象(Mappable,即你代码中调用imshow返回的line1实例)上。

修复方案

只需要修改两处代码即可兼容新版本:

  • 将原cbar.set_clim(...)的调用替换为line1.set_clim(...),直接调整绘图对象的色阶范围,ColorBar会自动同步适配
  • 删除冗余的cbar.draw_all()调用

修改后可运行的完整代码

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

x = np.linspace(0, 10, 100)
y = np.cos(x)
y = y.reshape(10,10)

plt.ion()

figure = plt.figure()
line1 = plt.imshow(y)
cbar = plt.colorbar(line1)

for p in range(100):
    updated_y = np.random.randint(0,10)*np.cos(x-0.05*p).reshape(10,10)
    
    line1.set_data(updated_y)

    # 调整绘图对象的色阶即可同步更新colorbar
    line1.set_clim(vmin=np.min(updated_y),vmax=np.max(updated_y))
    
    figure.canvas.draw()
    figure.canvas.flush_events()
    time.sleep(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:09:03