Метки цветовой полосы Python помечены смещением +1, а не указанными значениями.

Я пытаюсь сделать контурный график расхождения векторного поля с помощью 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') 

Если я выполняю скрипт Python, он работает, и все рисуется правильно, но цветовая карта помечена следующим образом:

0.9900, 0.9950, 0.9975, 1.025, 1.0050, 1.0100

а в верхней части цветной полосы отображается «-1».

Я много пробовал, в том числе устанавливал галочки на цветовой полосе после ее создания или устанавливал галочки в режиме отладки, но, похоже, ничего не меняет это поведение.

Любые идеи по этому поводу?


person Luggi    schedule 26.03.2015    source источник


Ответы (1)


Вы можете указать colorbar на formatter, чтобы не использовать смещение при вызове

bar.formatter.set_useOffset(False)

а затем обновите галочки с помощью

bar.update_ticks()
person fhdrsdg    schedule 26.03.2015