我在用着imshow() http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow绘制 2D numpy 数组,例如:
my_array = [[ 2. 0. 5. 2. 5.]
[ 3. 2. 0. 1. 4.]
[ 5. 0. 5. 4. 4.]
[ 0. 5. 2. 3. 4.]
[ 0. 0. 3. 5. 2.]]
plt.imshow(my_array, interpolation='none', vmin=0, vmax=5)
绘制该图像:
然而,我想做的是改变颜色,例如0是红色,1是绿色,2是橙色,你明白我的意思了。有没有办法做到这一点,如果有的话,怎么做?
我尝试通过更改颜色图中的条目来做到这一点,如下所示:
cmap = plt.cm.jet
cmaplist = [cmap(i) for i in range(cmap.N)]
cmaplist[0] = (1,1,1,1.0)
cmaplist[1] = (.1,.1,.1,1.0)
cmaplist[2] = (.2,.2,.2,1.0)
cmaplist[3] = (.3,.3,.3,1.0)
cmaplist[4] = (.4,.4,.4,1.0)
cmap = cmap.from_list('Custom cmap', cmaplist, cmap.N)
但它没有像我预期的那样工作,因为 0 = 颜色图中的第一个条目,但 1 例如 != 颜色图中的第二个条目,所以只有 0 被不同地绘制: