MATLAB 繪製顏色圖

  1. 在 MATLAB 中使用 mesh() 函式繪製顏色圖
  2. 在 MATLAB 中使用 meshc() 函式繪製顏色圖
  3. 在 MATLAB 中使用 meshz() 函式繪製顏色圖
  4. 在 MATLAB 中使用 surf() 函式繪製顏色圖
MATLAB 繪製顏色圖

在本教程中,我們將討論如何在 MATLAB 中使用 mesh()meshc()meshz()surf() 函式繪製顏色圖。

在 MATLAB 中使用 mesh() 函式繪製顏色圖

要繪製給定矩陣的顏色圖,可以使用 mesh() 函式,該函式在給定的 x 和 y 軸上繪製變數。如果沒有給出座標,它將使用矩陣的索引作為座標。mesh() 函式在給定座標上繪製給定矩陣作為高度。要將座標提供為 mesh() 函式的輸入,必須使用 meshgrid() 函式製作座標網格,在該網格上將繪製給定的矩陣。請參見下面的程式碼。

a = 0:0.1:10;
z = [sin(a);sin(a)];
mesh(z)
colorbar

輸出:

使用 mesh 函式的 Matlab ColorMap - 1

在上面的程式碼中,我們繪製了一個正弦波的顏色圖。顏色圖將最小值分配給最冷的顏色,將最大值分配給最熱的顏色。你可以在圖中看到,隨著正弦波值的增加,顏色將從較冷的區域轉移到較熱的區域,反之亦然。你也可以使用 colorbar 功能顯示顏色條。從顏色欄中,你可以看到將哪個值分配給了哪種顏色。你也可以使用 colormap 功能將顏色圖更改為所需的顏色範圍。例如,讓我們在夏季顏色圖上繪製上述正弦波。請參見下面的程式碼。

a = 0:0.1:10;
z = [sin(a);sin(a)];
mesh(z)
colormap summer
colorbar

輸出:

使用 mesh 函式的 Matlab ColorMap-2

現在,讓我們在給定的座標上繪製矩陣。首先,我們必須使用 meshgrid() 函式建立一個網格網格,然後將座標與矩陣一起傳遞以在給定座標上繪製給定矩陣。請參見下面的示例程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
mesh(x,y,z)
colorbar

輸出:

Matlab ColorMap-3

你可以看到 x 和 y 座標與上圖中的給定座標完全相同。你可以在任何 x 和 y 座標上繪製給定的矩陣。現在,讓我們藉助 view() 函式將此 3D 圖更改為 2D。此函式更改圖形的檢視。使用此函式,我們只能看到兩個座標。請參見下面的程式碼。

a = 0:0.1:30;
z = [sin(a); sin(a)];
mesh(z)
colorbar
view(2)

輸出:

Matlab ColorMap-4

在上面的程式碼中,我們繪製了正弦波,並使用 view() 函式將圖從 3D 更改為 2D。你可以在圖中看到,隨著正弦波值的增加,顏色將從較冷的區域轉移到較熱的區域,反之亦然。你可以看到顏色欄,以檢查將哪個值分配給了哪種顏色。你也可以改變其他的網格屬性,比如使用 EdgeColor 屬性改變邊緣顏色,使用 LineColor 屬性更改線型,使用 FaceColor 屬性更改前部顏色,例如,讓我們使用 mesh() 函式中的 FaceColor 屬性。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
mesh(x,y,z,'FaceColor','Flat')
colorbar

輸出:

Matlab ColorMap-5

在上面的程式碼中,我們將網格圖的面顏色更改為平面,這意味著圖的表面將是平坦的,如上圖所示。檢視此連結以獲取 mesh() 函式和屬性的更多資訊。

在 MATLAB 中使用 meshc() 函式繪製顏色圖

要繪製給定矩陣的顏色圖,可以使用 meshc() 函式,該函式在給定的 x 和 y 軸上繪製變數的顏色圖,並在網格圖下新增輪廓圖。如果沒有給出座標,它將使用矩陣的索引作為座標。meshc() 函式將給定的矩陣繪製為給定座標上的高度。要將座標作為 meshc() 函式的輸入,必須使用 meshgrid() 函式製作座標網格,在該網格上將繪製給定的矩陣。例如,讓我們繪製一個矩陣。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshc(x,y,z)
colorbar

輸出:

Matlab ColorMap-6

你也可以使用 colormap 函式將顏色圖更改為所需的顏色範圍。例如,讓我們在夏季顏色圖上繪製上述正弦波。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshc(x,y,z)
colorbar
colormap winter

輸出:

Matlab ColorMap-7

你還可以使用 meshc() 函式中的 EdgeColor 屬性來更改網格的邊緣顏色和輪廓的邊緣顏色。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshc(x,y,z)
sc(1).EdgeColor = 'r';
sc(2).EdgeColor = 'b';
colorbar

輸出:

Matlab ColorMap-8

在上面的程式碼中,我們將網格圖的邊緣顏色更改為紅色,將輪廓圖的邊緣顏色更改為藍色。你可以從可用顏色中選擇所需的任何顏色。你也可以更改圖中等高線圖的位置。例如,讓我們更改輪廓圖的位置,並使用 Zlocation 屬性​​將其繪製在 z 軸上。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshc(x,y,z)
sc(2).ZLocation = 'zmax';
colorbar

輸出:

Matlab ColorMap-9

檢視此網頁以獲取有關 meshc() 函式的更多資訊。

在 MATLAB 中使用 meshz() 函式繪製顏色圖

要繪製給定矩陣的顏色圖,可以使用 meshz() 函式,該函式在給定的 x 和 y 軸上繪製變數的顏色圖,並在網格圖下新增窗簾。如果沒有給出座標,它將使用矩陣的索引作為座標。meshz() 函式將給定的矩陣繪製為給定座標上的高度。要將座標作為 meshz() 函式的輸入,必須使用 meshgrid() 函式製作座標網格,在該網格上將繪製給定的矩陣。例如,讓我們繪製一個矩陣。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshz(x,y,z)
colorbar

輸出:

Matlab ColorMap-10

你也可以使用 colormap 函式將顏色圖更改為所需的顏色範圍。例如,讓我們在夏季顏色圖上繪製上述正弦波。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
meshz(x,y,z)
colorbar
colormap winter

輸出:

Matlab ColorMap-11

你還可以使用 meshz() 函式中的 EdgeColor 屬性來更改網格的邊緣顏色。請參見下面的程式碼。

a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
sc = meshz(x,y,z)
sc(1).EdgeColor = 'g';

輸出:

Matlab ColorMap-12

在上面的程式碼中,我們將網格圖的邊緣顏色更改為藍色。你可以從可用顏色中選擇所需的任何顏色。檢視此網頁以獲得有關 meshz() 函式的更多詳細資訊。

在 MATLAB 中使用 surf() 函式繪製顏色圖

surf() 函式的功能與 mesh() 函式的功能相同,只是區別在於 surf() 函式繪製的矩陣為純色,而 mesh() 函式繪製的矩陣則為無色顏色。除此之外,surf()mesh() 是相同的功能。請檢視上述 mesh() 函式。檢視此網頁以獲得有關 surf() 函式的更多資訊。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - MATLAB Plot