2013-03-04 1 views
2

У меня есть массив, который я просматриваю, используя imshow(). (imsave() действительно, но процесс должен быть идентичным).Цветная карта matplotlib - предопределяет сопоставление значений?

Я знаю, что значения в массиве будут находиться в диапазоне от 0 до 9 и задаются вопросом, можно ли использовать cmap для установки каждого вывода на определенный «цвет». Возможно, сопоставив их с dict?

+0

Matplotlib документы, кажется, имеют соответствующий пример: http://matplotlib.org/examples/pylab_examples/custom_cmap.html –

ответ

6

Просто используйте ListedColormap.

Как быстро (но уродливый), например:

import matplotlib.pyplot as plt 
from matplotlib.colors import ListedColormap 

cmap = ListedColormap(['red', 'green', 'blue', 'black'], 'indexed') 

fig, ax = plt.subplots() 
im = ax.imshow([range(4)], interpolation='none', cmap=cmap) 
fig.colorbar(im) 
plt.show() 

enter image description here

+1

спасибо ! В качестве дополнения я замечаю, что поддерживаются все имена цветов HTML: http://www.w3schools.com/html/html_colornames.asp, поэтому вам не нужно блуждать по поиску имен, которые работают или вручную кодируют коды RBG/HEX , – Jzl5325