Пользовательские цветовые карты Matplotlib, делают одно значение заданным цветом

У меня есть массив в python, используя matplotlib, с поплавками от 0 до 1.

Я показываю этот массив с imshow, я пытаюсь создать пользовательский cmap, который идентичен Greens, однако, когда ячейка становится 0, я хотел бы иметь возможность сопоставить это значение с красным и оставить остальную часть спектра без изменений ,

Если кто-нибудь, более знакомый с matplotlib, сможет мне помочь, я бы очень признателен!

Например, как бы отредактировать этот скрипт так, чтобы нулевое значение в матрице показалось красным?

import numpy as np from matplotlib import pyplot as plt import matplotlib x = np.array([[0,1,2],[3,4,5],[6,7,8]]) fig = plt.figure() cmap_custom = matplotlib.cm.Greens plt.imshow( x, interpolation='nearest' ,cmap = cmap_custom) plt.colorbar() plt.show() 

One Solution collect form web for “Пользовательские цветовые карты Matplotlib, делают одно значение заданным цветом”

Цветовые карты в matplotlib позволяют устанавливать специальные цвета для значений, находящихся за пределами заданного диапазона. В вашем случае укажите цвет для значений ниже заданного диапазона с помощью cmap_custom.set_under('r') . Затем вам также нужно указать нижний vmin=0.01 диапазона: vmin=0.01 (только некоторое значение> 0). Наконец, создайте colorbar с plt.colorbar(extend='min') .

 import numpy as np from matplotlib import pyplot as plt import matplotlib x = np.array([[0,1,2],[3,4,5],[6,7,8]]) fig = plt.figure() cmap_custom = matplotlib.cm.Greens cmap_custom.set_under('r') plt.imshow( x, interpolation='nearest' ,cmap = cmap_custom, vmin=0.01) plt.colorbar(extend='min') plt.show() 
Python - лучший язык программирования в мире.