Python 颜色条刻度标记有 +1 的偏移量而不是指定值

Python colorbar ticks are labeled with an offset of +1 and not with specifed values

我正在尝试使用 python 绘制矢量场散度的 contourf 图,然后向该图添加颜色条。我的级别旨在从 -0.01 到 0.01 围绕零对称。

这是我的代码的一部分:

div_levs = [-0.01, -0.005, -0.0025, 0.0025, 0.005, 0.01]
col = ['Blue', 'SteelBlue', 'White', 'Orange', 'Red']
c = plt.contourf(iwrf['x'], iwrf['y'], np.squeeze(iwrf['DIV'][ind_lev,:,:]), 
                 levels=div_levs, colors=col, extend='both')
c.cmap.set_over('Magenta') 
c.cmap.set_under('MidnightBlue')     
bar = plt.colorbar(ticks=div_levs)
bar.set_label('1/s') 

如果我执行 python 脚本,它就会工作,并且所有内容都绘制在正确的位置 方式,但颜色图标记为:

0.9900, 0.9950, 0.9975, 1.025, 1.0050, 1.0100

并在颜色栏顶部显示“-1”。

我尝试了很多,包括在创建颜色条后设置它的刻度, 或在调试模式下设置刻度,但似乎没有任何改变这种行为。

对此有什么想法吗?

您可以通过调用

告诉 colorbar's formatter 不使用偏移量
bar.formatter.set_useOffset(False)

然后用

更新报价
bar.update_ticks()