2 回答

TA貢獻1831條經驗 獲得超9個贊
顏色圖只是一個 3 列矩陣,其中每一行定義一種顏色。具體來說,這些列分別定義了 R、G、B 分量。因此,您可以手動創建顏色圖。
例如,可以通過將 B 分量設置為 1 并讓其他兩個范圍從 0 到 1 來生成從藍色到白色的顏色圖:
cmap = [linspace(0,1,256).' linspace(0,1,256).' ones(256,1)];
colormap(cmap)
colorbar('horizontal')
通過重新排列顏色圖的列,可以實現更接近藍色/粉色/白色示例的內容hot:
cmap = hot(256);
cmap = cmap(:,[2 3 1]);
colormap(cmap),
colorbar('horizontal')
BrewerMap
該函數可以生成許多漂亮的顏色圖,可在File Exchange或GitHub 上找到。
手動生成的顏色圖的一個問題是它們通常在感知上并不統一。相比之下,Matlab 的許多默認顏色圖(如parula
或 Python 之類magma
)在感知上是統一的。這是關于統一和非統一顏色圖的討論,重點是parula
. 您可以通過 Ander Biguri 的File Exchange 功能在 Matlab 中使用 Python 的顏色圖。
parula
這是 Matlab和 Python 的兩個示例plasma
。在它們中的任何一個中,沿水平軸的相等增量大致對應于對“顏色變化”的類似感知。

TA貢獻1877條經驗 獲得超1個贊
看起來您的屏幕只是反轉了顏色。如果您想在 MATLAB 中反轉顏色圖,您可以通過執行以下操作相當簡單地做到這一點:
colormap(1-hot);
這會將熱點地圖中的紅色變為藍色,將黑色變為白色。如果您希望反過來(即紅色 -> 白色,黑色 -> 藍色),您可以這樣做:
colormap(1-flipud(hot));
這應該適用于任何顏色圖。
添加回答
舉報