2013-03-04 123 views
2

我有一個數組,我正在使用imshow()查看。 (imsave()真的,但過程應該是相同的)。matplotlib顏色映射 - 預定義映射到值?

我知道數組中的值將介於0-9之間,並想知道是否可以使用cmap將每個輸出設置爲特定的「顏色」。也許通過將這些映射到字典?

+0

Matplotlib文檔似乎有一個相關的例子:http://matplotlib.org/examples/pylab_examples/custom_cmap.html – 2013-03-04 17:45:02

回答

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 2013-03-05 17:14:06