MATLAB 中的 3D 線圖或點圖
本教程將討論使用 MATLAB 中的 plot3()
函式建立點或線的 3D 圖。
使用 MATLAB 中的 plot3()
函式建立點或線的 3D 圖
我們已經知道 MATLAB 中的 plot()
函式,該函式用於在 2D 平面上繪製資料。
plot3()
函式類似於 plot()
函式。唯一的區別是 plot3()
函式在 3D 平面上繪製資料。
我們可以將資料繪製為稱為連續圖的線,也可以繪製為點,也稱為離散圖。我們必須傳遞三個座標 x、y 和 z,才能在 3D 平面上繪製資料。
例如,讓我們使用 plot3()
函式在 3D 中繪製一個螺旋線。請參閱下面的程式碼。
clc
t = 0:pi/50:10*pi;
sinet = sin(t);
cost = cos(t);
plot3(sinet,cost,t)
輸出:
我們還可以通過在 plot3()
函式中使用多個輸入來同時繪製多條線。
例如,讓我們使用六個輸入和 plot3()
函式繪製兩條線。請參閱下面的程式碼。
clc
time = 0:pi/500:pi;
xs1 = sin(time).*cos(10*time);
ys1 = sin(time).*sin(10*time);
zs1 = cos(time);
xs2 = sin(time).*cos(12*time);
ys2 = sin(time).*sin(12*time);
zs2 = cos(time);
plot3(xs1,ys1,zs1,xs2,ys2,zs2)
輸出:
在多條線的情況下,plot3()
函式將為每條線賦予不同的顏色。我們還可以使用 legend()
函式為每一行指定一個唯一的名稱。檢視此連結以瞭解有關 MATLAB 中圖例的更多詳細資訊。
你可以將多個資料的座標儲存到單個矩陣中,而不是傳遞六個引數。
例如,在上述情況下,我們可以將單個矩陣中每個資料的 x 座標儲存為列,其餘座標也是如此。然後我們只需要傳遞三個輸入。
我們還可以使用 xlabel()
函式為 x 軸標籤、ylabel()
為 y 軸標籤和 label()
為 z 軸標籤新增標籤到 3D 繪圖的每個軸。我們還可以使用 title()
函式為標題指定繪圖。
我們甚至可以使用不同的標記將線更改為離散圖的點,例如 o 表示圓圈,+ 表示加號,*表示星號,d 表示菱形。
例如,讓我們以離散形式繪製上述圖形,併為圖形新增標籤和標題。請參閱下面的程式碼。
clc
time = 0:pi/500:pi;
xs1 = sin(time).*cos(10*time);
ys1 = sin(time).*sin(10*time);
zs1 = cos(time);
xs2 = sin(time).*cos(12*time);
ys2 = sin(time).*sin(12*time);
zs2 = cos(time);
plot3(xs1,ys1,zs1,'+',xs2,ys2,zs2,'d')
legend('Line1','Line2')
axis equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')
title('3D line plot')
輸出:
我們還可以使用 LineStyle
屬性更改其他屬性,例如使用 LineStyle
屬性更改線條樣式,使用 Color
屬性更改線條顏色,使用 LineWidth
屬性更改線條寬度,使用 MarkerSize
屬性更改標記大小,使用標記邊緣顏色 MarkerEdgeColor
屬性、標記面顏色或使用 MarkerFaceColor
屬性的標記填充顏色。
我們還可以使用 LineSpec
屬性同時更改線條樣式、標記和顏色。例如,讓我們更改上圖的一些屬性。請參閱下面的程式碼。
clc
time = 0:pi/500:pi;
xs1 = sin(time).*cos(10*time);
ys1 = sin(time).*sin(10*time);
zs1 = cos(time);
plot3(xs1,ys1,zs1,'LineStyle','--','Color','red','LineWidth',3)
legend('Line1','Line2')
axis equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')
title('3D line plot')
輸出:
我們支援的 plot3()
函式的線條樣式是 -
代表實線,--
代表虛線,:
代表虛線,-.
對於點劃線。我們可以使用顏色名稱或 RGB 三元組值來更改線條或標記的顏色。
預設線寬為 0.5,但我們可以使用任何正值設定其值。預設情況下,標記大小值為 6,但我們可以將其更改為任何正值。
預設情況下,標記邊緣顏色設定為自動
,標記面顏色設定為無
,但我們可以使用顏色名稱或 RGB 三元組值為標記指定任何顏色。