В matplotlib imshow() как я могу изменить диапазон цветовой оси на существующем графике?

#python #matplotlib

#python #matplotlib

Вопрос:

При создании графика для начала я могу использовать:

 fig, ax = plt.subplots() 
h = ax.imshow(X, vmin=mn, vmax=mx)
 

Как только график будет готов, могу ли я передумать и сделать vmin vmax что-то другое?

Ответ №1:

Вы можете изменить нормализацию изображения, используя set_norm() и передавая Normalize объект:

 norm = matplotlib.colors.Normalize(vmin=0, vmax=1)
h.set_norm(norm)
 

Ответ №2:

Это также помогает:

 h.set_clim([mn, mx])
 

И сбросить значение «авто»:

 h.set_norm(None)
 

Комментарии:

1. Когда я читаю код Дизиета Асахи, я сразу понимаю его намерение, когда я читаю ваш, я не понимаю. Даже если ваш код верен, он, тем не менее, непрозрачен.

2. Я наоборот. Я понятия не имею, что означает «нормализовать», но исходя из matlab, установка цветовых ограничений (clim) имеет смысл. И это занимает всего одну короткую строку. Каждому свое.