Настроить существующую цветовую полосу - PullRequest
0 голосов
/ 13 июля 2020

Как переместить белую часть расходящейся цветной полосы к максимальному или минимальному значению.

import matplotlib.cm as cm
import matplotlib.pyplot as plt
import matplotlib as mpl
norm = mpl.colors.Normalize(vmin=0,vmax=600)
fig, ax = plt.subplots(figsize=(6, 1))
fig.subplots_adjust(bottom=0.5)
cb1 = mpl.colorbar.ColorbarBase(ax, cmap=cm.PiYG,
                                norm=norm,
                                orientation='horizontal')
cb1.set_label('Some Units')
fig.show()

введите описание изображения здесь

1 Ответ

1 голос
/ 13 июля 2020

Вы должны использовать TwoSlopeNorm класс нормализации

In [5]: import matplotlib.pyplot as plt 
   ...: import matplotlib as mpl 
   ...:  
   ...: norm = mpl.colors.TwoSlopeNorm(vcenter=450, vmin=0, vmax=600) 
   ...: fig, ax = plt.subplots(figsize=(6, 1)) 
   ...: fig.subplots_adjust(bottom=0.5) 
   ...: cb1 = mpl.colorbar.ColorbarBase(ax, cmap=mpl.cm.PiYG, 
   ...:                                 norm=norm, 
   ...:                                 orientation='horizontal') 
   ...: cb1.set_label('Some Units')    

введите описание изображения здесь

...