30

我想rainbow在图像中使用颜色图imshow。它工作得很好,但我想重新定义 value 的颜色0。我想用白色代替紫罗兰色。

我只想对零值执行此操作,所有其他值都可以保留颜色图中的默认值。

知道如何在无需手动编辑颜色图的情况下执行此操作吗?

4

1 回答 1

41

您也可以使用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,请参阅示例文档

有关具有更完整示例的重复项的答案,请参阅如何创建专门处理一个值的 matplotlib 颜色图?

于 2013-05-06T14:42:30.973 回答