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

Lug*_*ggi 5 python matplotlib colorbar

我正在尝试使用 python 绘制矢量场散度的轮廓图,然后向该图中添加一个颜色条。我的级别旨在从 -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') 
Run Code Online (Sandbox Code Playgroud)

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

0.9900, 0.9950, 0.9975, 1.025, 1.0050, 1.0100
Run Code Online (Sandbox Code Playgroud)

并且在颜色条的顶部显示“-1”。

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

对此有何想法?

fhd*_*sdg 4

您可以通过调用告诉colorbar格式化程序不要使用偏移量

bar.formatter.set_useOffset(False)
Run Code Online (Sandbox Code Playgroud)

然后更新刻度

bar.update_ticks()
Run Code Online (Sandbox Code Playgroud)