2013-03-04 120 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