2014-11-27 2 views
1

У меня есть массив в Python, используя Matplotlib, с поплавками в диапазоне между 0 и 1.Пользовательских цветов карта Matplotlib, сделай одно значение предписанного цвета

Я отображая этот массив с 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() 

ответ

2

цветовые карты в Matplotlib позволяют устанавливать специальные цвета для значений, которые находятся за пределами заданного диапазона. В вашем случае укажите цвет для значений ниже заданного диапазона с cmap_custom.set_under('r'). Затем вам также необходимо указать нижний предел диапазона: vmin=0.01 (только некоторое значение> 0). Наконец, создайте цветную панель с помощью 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() 
+0

Это фантастика! Прекрасный и аккуратный, спасибо вам большое! – Freeman

Смежные вопросы