如何在matplotlib色彩映射中重新定义特定值的颜色

时间:2013-05-06 13:52:43

标签: python matplotlib color-mapping

我想使用rainbow在图像中使用色彩映射imshow。它工作得很好,但我想重新定义值0的颜色。我想用白色而不是暴力。

我想只为零值执行此操作,所有其他值都可以保留在colormap中的默认值。

知道怎么做没有必须手动编辑色彩映射?

1 个答案:

答案 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”)颜色,请参阅exampledocs

有关包含更完整示例的副本的答案,请参阅How to create matplotlib colormap that treats one value specially?