Python colorbar ticks标记为+1的偏移量而不是指定的值

时间:2015-03-26 13:41:45

标签: python matplotlib colorbar

我正在尝试用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脚本它会工作,并且所有内容都会在右侧绘制 方式,但colormap标有:

0.9900, 0.9950, 0.9975, 1.025, 1.0050, 1.0100

并在彩条上方显示“-1”。

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

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:4)

您可以通过调用

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

然后用

更新刻度
bar.update_ticks()