我想在使用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