天天看點

matlab中colormap

來源: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      
matlab中colormap

将顔色圖設定回預設值

嘗試此示例

View MATLAB Command

首先,将目前圖窗的顔色圖更改為

summer

surf(peaks)
colormap summer      
matlab中colormap

現在将顔色圖設定回您系統的預設值。如果您尚未指定不同預設值,則預設顔色圖是

parula

colormap default      
matlab中colormap

對圖窗中的每個坐标區使用不同的顔色圖

嘗試此示例

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))      
matlab中colormap

建立自定義顔色圖

嘗試此示例

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)      
matlab中colormap

傳回用在繪圖中的顔色圖值

嘗試此示例

View MATLAB Command

建立

peaks

函數的曲面圖并指定顔色圖。

mesh(peaks)
colormap(autumn(5))      
matlab中colormap

傳回定義用在繪圖中使用的顔色的值的三列矩陣。每行是一個指定顔色圖的一種顔色的 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)      
matlab中colormap

輸入參數

全部折疊

map

- 新顔色方案的顔色圖

顔色圖名稱 | 由 RGB 三元組組成的三列矩陣 |

\'default\'

新顔色方案的顔色圖,指定為顔色圖名稱、由 RGB 三元組組成的三列矩陣或

\'default\'

。顔色圖名稱指定一個與目前顔色圖具有相同顔色數的預定義顔色圖。由 RGB 三元組組成的三列矩陣指定一個自定義顔色圖。您可以自行建立該矩陣,也可以調用一個預定義的顔色圖函數來建立矩陣。例如,

colormap(parula(10))

将目前圖窗的顔色圖設定為從

parula

顔色圖中選擇的 10 種顔色。

\'default\'

将目标對象的顔色圖設定為預設顔色圖。

顔色圖名稱

下表列出了預定義的顔色圖。

顔色圖名稱 色階

parula

jet

hsv

hot

cool

spring

summer

autumn

winter

gray

bone

copper

pink

lines

colorcube

prism

flag

white

三列矩陣

要建立自定義顔色圖,請将

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 三元組
黃色

[1 1 0]

品紅色

[1 0 1]

青藍色

[0 1 1]

紅色

[1 0 0]

綠色

[0 1 0]

藍色

[0 0 1]

白色

[1 1 1]

黑色

[0 0 0]

資料類型:

char

|

double

target

- 目标

Figure

對象 |

Axes

對象 |

PolarAxes

對象 | 圖形對象

目标,指定為下列值之一:

  • Figure

    對象。圖窗的顔色圖作用于圖窗中所有坐标區上的繪圖。
  • Axes

    對象或

    PolarAxes

    對象。您可以為圖窗中的每個坐标區定義一個唯一的顔色圖。
  • 具有

    Colormap

    屬性的圖形對象。例如,您可以更改或查詢

    HeatmapChart

    對象的顔色圖。

輸出參數

全部折疊

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