我想使用rainbow
在图像中使用色彩映射imshow
。它工作得很好,但我想重新定义值0
的颜色。我想用白色而不是暴力。
我想只为零值执行此操作,所有其他值都可以保留在colormap中的默认值。
知道怎么做没有必须手动编辑色彩映射?
答案 0 :(得分:32)
您还可以使用我认为比使用set_under
更具语义感的set_bad
my_cmap = matplotlib.cm.get_cmap('rainbow')
my_cmap.set_under('w')
imshow(np.arange(25).reshape(5, 5),
interpolation='none',
cmap=my_cmap,
vmin=.001)
您可以使用kwarg extend
调整颜色条以显示“under”(以及对称“over”)颜色,请参阅example和docs。
有关包含更完整示例的副本的答案,请参阅How to create matplotlib colormap that treats one value specially?