來源:https://ww2.mathworks.cn/help/matlab/ref/colormap.html?searchHighlight=colormap&s_tid=doc_srchtitle#buc3wsn-1-map
檢視并設定目前顔色圖
全頁折疊
文法
colormap map
colormap(map)
colormap(target,map)
cmap = colormap
cmap = colormap(target)
說明
示例
colormap
map
将目前圖窗的顔色圖設定為預定義的顔色圖之一。如果您為圖窗設定了顔色圖,圖窗中的坐标區和圖将使用相同的顔色圖。新顔色圖的長度(顔色數)與目前顔色圖相同。當您使用此文法時,不能為顔色圖指定自定義長度。有關顔色圖的詳細資訊,請參閱什麼是顔色圖?。
示例
colormap(
map
)
将目前圖窗的顔色圖設定為
map
指定的顔色圖。
示例
colormap(
target
,
map
)
為
target
指定的圖窗、坐标區或圖形設定顔色圖,而不是為目前圖窗設定顔色圖。
示例
cmap
= colormap
傳回目前圖窗的顔色圖,形式為 RGB 三元組組成的三列矩陣。
示例
cmap
= colormap(
target
)
傳回
target
指定的圖窗、坐标區或圖的顔色圖。
示例
全部折疊
更改圖窗的顔色圖
嘗試此示例
View MATLAB Command
建立一個曲面圖并将顔色圖設定為
winter
。
surf(peaks)
colormap winter

将顔色圖設定回預設值
嘗試此示例
View MATLAB Command
首先,将目前圖窗的顔色圖更改為
summer
。
surf(peaks)
colormap summer
現在将顔色圖設定回您系統的預設值。如果您尚未指定不同預設值,則預設顔色圖是
parula
。
colormap default
對圖窗中的每個坐标區使用不同的顔色圖
嘗試此示例
View MATLAB Command
建立一個包含兩個子圖的圖窗,并存儲坐标區句柄
ax1
和
ax2
。通過将坐标區句柄傳遞給
colormap
函數對每個坐标區使用不同顔色圖。在上部子圖中,使用
spring
顔色圖建立一個曲面圖。在下部子圖中,使用
winter
顔色圖建立一個曲面圖。
ax1 = subplot(2,1,1);
surf(peaks)
colormap(ax1,spring)
ax2 = subplot(2,1,2);
surf(peaks)
colormap(ax2,winter)
指定顔色圖的顔色數
嘗試此示例
View MATLAB Command
通過将整數作為内置顔色圖的輸入參數傳遞來指定用于顔色圖的顔色數。使用 parula 顔色圖中的五種顔色。
mesh(peaks)
colormap(parula(5))
建立自定義顔色圖
嘗試此示例
View MATLAB Command
通過定義一個由介于 0.0 和 1.0 之間的值組成的三列矩陣來建立一個自定義顔色圖。每行定義一個三元素 RGB 三元組。第一列指定紅色強度。第二列指定綠色強度。第三列指定藍色強度。
通過将前兩個列設定為零來使用藍色值的顔色圖。
map = [0 0 0.3
0 0 0.4
0 0 0.5
0 0 0.6
0 0 0.8
0 0 1.0];
surf(peaks)
colormap(map)
傳回用在繪圖中的顔色圖值
嘗試此示例
View MATLAB Command
建立
peaks
函數的曲面圖并指定顔色圖。
mesh(peaks)
colormap(autumn(5))
傳回定義用在繪圖中使用的顔色的值的三列矩陣。每行是一個指定顔色圖的一種顔色的 RGB 三元組顔色值。
cmap = colormap
cmap = 5×3
1.0000 0 0
1.0000 0.2500 0
1.0000 0.5000 0
1.0000 0.7500 0
1.0000 1.0000 0
傳回特定坐标區的顔色圖值
嘗試此示例
View MATLAB Command
通過将其坐标區句柄傳遞給
colormap
函數傳回特定坐标區的顔色圖值。
建立一個包含兩個子圖的圖窗,并傳回子圖的坐标區句柄
ax1
和
ax2
。将填充的等高線圖添加到每個坐标區并對每個坐标區使用不同顔色圖。
ax1 = subplot(2,1,1);
contourf(peaks)
colormap(ax1,hot(8))
ax2 = subplot(2,1,2);
contourf(peaks)
colormap(ax2,pink)
通過将其坐标區句柄
ax1
傳遞給
colormap
函數來傳回用在上部子圖中的顔色圖值。每行是一個指定顔色圖的一種顔色的 RGB 三元組顔色值。
cmap = colormap(ax1)
cmap = 8×3
0.3333 0 0
0.6667 0 0
1.0000 0 0
1.0000 0.3333 0
1.0000 0.6667 0
1.0000 1.0000 0
1.0000 1.0000 0.5000
1.0000 1.0000 1.0000
将圖窗的顔色圖更改為圖像
嘗試此示例
View MATLAB Command
加載
spine
資料集以傳回
X
及其關聯的顔色圖
map
。使用
image
函數顯示
X
并将顔色圖設定為
map
。
load spine
image(X)
colormap(map)
輸入參數
全部折疊
map
map
- 新顔色方案的顔色圖
顔色圖名稱 | 由 RGB 三元組組成的三列矩陣 |
\'default\'
新顔色方案的顔色圖,指定為顔色圖名稱、由 RGB 三元組組成的三列矩陣或
\'default\'
。顔色圖名稱指定一個與目前顔色圖具有相同顔色數的預定義顔色圖。由 RGB 三元組組成的三列矩陣指定一個自定義顔色圖。您可以自行建立該矩陣,也可以調用一個預定義的顔色圖函數來建立矩陣。例如,
colormap(parula(10))
将目前圖窗的顔色圖設定為從
parula
顔色圖中選擇的 10 種顔色。
值
\'default\'
将目标對象的顔色圖設定為預設顔色圖。
顔色圖名稱
下表列出了預定義的顔色圖。
顔色圖名稱 | 色階 |
---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
三列矩陣
要建立自定義顔色圖,請将
map
指定為 RGB 三元組組成的三列矩陣(其中每行定義一種顔色)。RGB 三元組是包含三個元素的行向量,其元素分别指定顔色中紅、綠、藍分量的強度。強度必須處于範圍
[0,1]
中。例如,此矩陣定義一個包含五種顔色的顔色圖。
map = [0.2 0.1 0.5
0.1 0.5 0.8
0.2 0.7 0.6
0.8 0.7 0.3
0.9 1 0];
下表列出了常見顔色的 RGB 三元組值。
顔色 | RGB 三元組 |
---|---|
黃色 | |
品紅色 | |
青藍色 | |
紅色 | |
綠色 | |
藍色 | |
白色 | |
黑色 | |
資料類型:
char
|
double
target
- 目标 Figure
對象 | Axes
對象 | PolarAxes
對象 | 圖形對象
target
Figure
Axes
PolarAxes
目标,指定為下列值之一:
-
對象。圖窗的顔色圖作用于圖窗中所有坐标區上的繪圖。Figure
-
對象或Axes
對象。您可以為圖窗中的每個坐标區定義一個唯一的顔色圖。PolarAxes
- 具有
屬性的圖形對象。例如,您可以更改或查詢Colormap
對象的顔色圖。HeatmapChart
輸出參數
全部折疊
cmap
cmap
- 顔色圖值
由 RGB 三元組組成的三列矩陣
顔色圖值,以由 RGB 三元組組成的三列矩陣形式傳回。矩陣的每行定義一個指定顔色圖的一種顔色的 RGB 三元組。這些值在 [0, 1] 範圍内。
詳細資訊
全部折疊
什麼是顔色圖?
顔色圖是由介于
和
1
之間的值組成的矩陣,用于定義諸如曲面、圖像以及補片之類的圖形對象的顔色。MATLAB® 通過将資料值映射到顔色圖中的顔色來繪制這些對象。
顔色圖可以為任意長度,但寬度必須為三列。矩陣中的每一行均使用 RGB 三元組定義一種顔色。RGB 三元組是包含三個元素的行向量,其元素分别指定顔色中紅、綠、藍分量的強度。強度必須在 [0, 1] 範圍内。值
表示無顔色,值
1
表示全強度。例如,以下指令将建立一個包含五種顔色(黑色、紅色、綠色、藍色和白色)的顔色圖。
mymap = [0 0 0
1 0 0
0 1 0
0 0 1
1 1 1];
要更改可視化的顔色方案,請調用
colormap
函數以更改所屬坐标區或圖窗的顔色圖。例如,以下指令将建立一個曲面圖,并将圖窗的顔色圖設定為
mymap
。
surf(peaks)
colormap(mymap)
相容性考慮
- 從 R2018a 開始,如果您為圖窗設定顔色圖,則圖窗中的坐标區和圖将使用相同的顔色圖。以前,當您設定圖窗顔色圖時,任何顯式設定了顔色圖的坐标區或圖都不受影響。如果您希望
對象使用與圖窗不同的顔色圖,請在設定圖窗顔色圖之後設定坐标區顔色圖。Axes
- 從 R2014b 開始,預設顔色圖為
。在以前的版本中,預設顔色圖為parula
。jet