MATLAB 繪製顏色圖
-
在 MATLAB 中使用
mesh()
函式繪製顏色圖 -
在 MATLAB 中使用
meshc()
函式繪製顏色圖 -
在 MATLAB 中使用
meshz()
函式繪製顏色圖 -
在 MATLAB 中使用
surf()
函式繪製顏色圖
在本教程中,我們將討論如何在 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
輸出:
在上面的程式碼中,我們繪製了一個正弦波的顏色圖。顏色圖將最小值分配給最冷的顏色,將最大值分配給最熱的顏色。你可以在圖中看到,隨著正弦波值的增加,顏色將從較冷的區域轉移到較熱的區域,反之亦然。你也可以使用 colorbar
功能顯示顏色條。從顏色欄中,你可以看到將哪個值分配給了哪種顏色。你也可以使用 colormap
功能將顏色圖更改為所需的顏色範圍。例如,讓我們在夏季顏色圖上繪製上述正弦波。請參見下面的程式碼。
a = 0:0.1:10;
z = [sin(a);sin(a)];
mesh(z)
colormap summer
colorbar
輸出:
現在,讓我們在給定的座標上繪製矩陣。首先,我們必須使用 meshgrid()
函式建立一個網格網格,然後將座標與矩陣一起傳遞以在給定座標上繪製給定矩陣。請參見下面的示例程式碼。
a = 0:0.1:10;
b = 0:10;
[x,y] = meshgrid(a,b);
z = sin(x) + sin(y);
mesh(x,y,z)
colorbar
輸出:
你可以看到 x 和 y 座標與上圖中的給定座標完全相同。你可以在任何 x 和 y 座標上繪製給定的矩陣。現在,讓我們藉助 view()
函式將此 3D 圖更改為 2D。此函式更改圖形的檢視。使用此函式,我們只能看到兩個座標。請參見下面的程式碼。
a = 0:0.1:30;
z = [sin(a); sin(a)];
mesh(z)
colorbar
view(2)
輸出:
在上面的程式碼中,我們繪製了正弦波,並使用 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
輸出:
在上面的程式碼中,我們將網格圖的面顏色更改為平面,這意味著圖的表面將是平坦的,如上圖所示。檢視此連結以獲取 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
輸出:
你也可以使用 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
輸出:
你還可以使用 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
輸出:
在上面的程式碼中,我們將網格圖的邊緣顏色更改為紅色,將輪廓圖的邊緣顏色更改為藍色。你可以從可用顏色中選擇所需的任何顏色。你也可以更改圖中等高線圖的位置。例如,讓我們更改輪廓圖的位置,並使用 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
輸出:
檢視此網頁以獲取有關 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
輸出:
你也可以使用 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
輸出:
你還可以使用 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';
輸出:
在上面的程式碼中,我們將網格圖的邊緣顏色更改為藍色。你可以從可用顏色中選擇所需的任何顏色。檢視此網頁以獲得有關 meshz()
函式的更多詳細資訊。
在 MATLAB 中使用 surf()
函式繪製顏色圖
surf()
函式的功能與 mesh()
函式的功能相同,只是區別在於 surf()
函式繪製的矩陣為純色,而 mesh()
函式繪製的矩陣則為無色顏色。除此之外,surf()
和 mesh()
是相同的功能。請檢視上述 mesh()
函式。檢視此網頁以獲得有關 surf()
函式的更多資訊。