Подтвердить что ты не робот

Как переопределить цвет для определенного значения в цветовой палитре matplotlib

Я хочу использовать colormap rainbow в изображении с помощью imshow. Он отлично работает, но я хочу переопределить цвет для значения 0. Вместо violete я хочу использовать белый.

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

Любая идея, как сделать это без, чтобы вручную отредактировать палитру?

4b9b3361

Ответ 1

Вы также можете использовать set_under, который, как мне кажется, имеет более смысловой смысл, чем использование set_bad

my_cmap = matplotlib.cm.get_cmap('rainbow')
my_cmap.set_under('w')
imshow(np.arange(25).reshape(5, 5),
       interpolation='none',
       cmap=my_cmap,
       vmin=.001)

Вы можете настроить цветную панель, чтобы также показать цвет "under" (и симметричный "поверх" ) с помощью kwarg extend, см. example и docs.

Для ответа на дубликат с более полными примерами см. Как создать matplotlib colormap, который обрабатывает одно значение специально?