我想在使用imshow
的图像中使用颜色地图rainbow
。它完美的工作,但我想重新定义值为0
的颜色。我不想使用白色,而是使用白色。如何在matplotlib颜色地图中为特定值重新定义颜色
我想只为零值,所有其他值可以保留在颜色映射中的默认值。
任何想法如何做到这一点没有必须手动编辑颜色映射?
我想在使用imshow
的图像中使用颜色地图rainbow
。它完美的工作,但我想重新定义值为0
的颜色。我不想使用白色,而是使用白色。如何在matplotlib颜色地图中为特定值重新定义颜色
我想只为零值,所有其他值可以保留在颜色映射中的默认值。
任何想法如何做到这一点没有必须手动编辑颜色映射?
您还可以使用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
,参见example和docs。
的答案,复制与更完整的示例,请参阅How to create matplotlib colormap that treats one value specially?
参见:http://stackoverflow.com/questions/16152052/matplotlib-python-change-single-color-in-colormap/16163481 – 2013-05-06 13:59:12
的问题是不同的,最后我不想直接编辑阵营......彩虹色彩地图的定义并不明确 – otmezger 2013-05-06 18:36:35
你根本不必编辑斜坡,我的意思是创建一个蒙版的蒙版,并使用蒙版'cmap.set_bad( '白')'。但是,解决方法与从下面使用'cmap.set_under()'相当。 – 2013-05-07 06:35:43