matplotlib 如何为色彩Map表中的特定值重新定义颜色

kcwpcxri  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(117)

我想在使用imshow的图像中使用颜色Map表rainbow。它工作得很好,但我想重新定义值0的颜色。我想使用白色而不是violete。
我只想对零值这样做,所有其他值都可以保持颜色表中的默认值。
有没有办法在不需要手动编辑色彩Map表的情况下做到这一点?

1szpjjfi

1szpjjfi1#

您也可以使用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和文档。
关于重复的答案和更完整的例子,请参阅如何创建matplotlib colormap,特别对待一个值?

相关问题