MATLAB 繪製顏色圖

Ammar Ali 2024年2月15日
  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() 函式的更多資訊。

作者: 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