MATLAB 極座標圖
本教程將討論使用 MATLAB 中的 polarplot()
函式建立極座標圖。
MATLAB 極座標圖
在極座標系上建立極座標圖,該座標系是一個二維座標系,顯示點到原點的距離及其相對於 x 軸的角度。
我們可以使用 Matlab 的 polarplot()
函式來建立一個極座標圖。polarplot()
函式的基本語法如下。
polarplot(My_theta,My_rho)
上面的語法將根據每個點的角度 My_theta
以及它們與儲存在 My_rho
變數中的原點的距離建立一個極座標圖。如果兩個輸入是向量,它們應該具有相同的長度。
如果兩個輸入都是矩陣,它們應該具有相同的大小,在這種情況下,第一個矩陣的每一列都將與第二個矩陣的每一列相對應。如果一個輸入是向量而另一個輸入是矩陣,則向量的長度應等於矩陣中存在的列或行的長度,並且矩陣的每一列都將針對向量進行繪製。
如果 polarplot()
函式的單個輸入是矩陣,該函式將在極座標圖上繪製多條不同顏色的線。例如,讓我們使用 polarplot()
函式在極座標上繪製兩個向量。
請參閱下面的程式碼。
clc
clear
My_theta = 0:0.01:2*pi;
My_rho = sin(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)
輸出:
在上面的程式碼中,我們使用了兩個向量,我們可以在輸出中看到該圖顯示了點到原點的角度和距離。我們還可以使用 polarplot()
函式在單個圖上繪製多條資料線。
我們必須將每一行的資料作為矩陣中的一列傳遞,polarplot()
函式將繪製第一個矩陣的第一列和第二個矩陣的第一列,依此類推。如果我們想對一個維度使用相同的值,例如距離或角度,我們可以使用該維度的向量。
例如,讓我們使用向量和矩陣在同一個極座標圖上繪製多條線。請參閱下面的程式碼。
clc
clear
My_theta = 0:0.01:2*pi;
My_rho1 = sin(2*My_theta).*cos(2*My_theta);
My_rho2 = cos(2*My_theta).*cos(2*My_theta);
My_rho = [My_rho1; My_rho2];
polarplot(My_theta,My_rho)
legend('data1','data2')
輸出:
在上面的程式碼中,我們為半徑建立了兩個向量,然後將它們作為兩行儲存在一個矩陣中,並且 polarplot()
函式將這兩行與同一個角度向量進行繪製。我們使用 legend()
函式根據資料為繪圖新增圖例。
我們可以在輸出中看到極座標圖中有兩條不同顏色的線,因為 polarplot()
函式為每個資料集賦予了不同的顏色,以便於區分它們。預設情況下,角度以度為單位,但我們也可以使用 Matlab 的 deg2rad()
函式將其轉換為弧度。
我們還可以僅使用單個向量建立極座標圖,該向量將使用 polarplot()
函式定義從原點開始的點的半徑。該函式將以相等的間隔繪製半徑點與從間隔 0 到 2pi
所取角度的關係。
我們還可以設定線條的規格,如線條樣式、標記和顏色。我們可以在單個字串中傳遞所有三個引數,並將其傳遞到 polarplot()
函式中以更改線規格。
我們可以使用 -
字元設定線條樣式為實線,使用 --
字元設定虛線,使用:
字元設定虛線,使用 -.
設定點劃線特點。標記將放置在資料點的頂部,我們可以使用諸如 o
代表圓形、*
代表星號、d
代表菱形、p
代表五角星、h
代表卦等。
我們可以使用顏色名稱或顏色的第一個字母來設定線條的顏色,例如 r
代表紅色,g
代表綠色等等。例如,讓我們使用單個字串更改極座標圖的線規格。
請參閱下面的程式碼。
clc
clear
My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,':*g')
輸出:
在上面的程式碼中,我們使用 :*g
字串來更改線條規格,其中第一個字元將線條樣式設定為點線,第二個字元將標記設定為星號,第三個字元將線條顏色設定為綠色.
請注意,如果我們在繪圖上繪製了多個資料集,則線條規格將改變圖表中所有線條的規格,並且可能難以區分資料集或線條。
我們還可以使用名稱-值對來更改繪圖的屬性,其中我們必須將屬性的名稱作為字串傳遞,然後我們必須傳遞其值來更改該屬性。我們可以更改 Color
、LineStyle
、LineWidth
、Marker
、MarkerSize
和 MarkerFaceColor
的屬性。
Color
屬性設定線條的顏色,我們可以傳遞一個 RGB 三元組值、十六進位制顏色程式碼、顏色名稱或顏色名稱的第一個字母。LineStyle
屬性設定線條的樣式,可用的線條樣式如上所述。
LineWidth
屬性設定線條的寬度,預設情況下,它的值設定為 0.5
,但我們也可以將其設定為任何正數。Marker
屬性設定在資料點頂部使用的標記,預設情況下,其值設定為無,但我們可以使用上面討論的標記符號進行設定。
MarkerSize
屬性用於設定標記的大小,預設情況下其值設定為 6,我們可以將其更改為任何正值。MarkerFaceColor
屬性設定標記填充顏色,或者換句話說,它將填充繪圖中使用的標記,預設情況下,其值設定為 none
,但我們可以使用其 RGB 三元組將其設定為任何顏色值、十六進位制程式碼或顏色名稱。
例如,讓我們更改上面提到的屬性。請參閱下面的程式碼。
clc
clear
My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,'Color','red','LineStyle',':','Marker','o','LineWidth',2,'MarkerSize',10,'MarkerFaceColor','green')
輸出:
我們還可以通過將自定義軸新增為 polarplot()
函式中的第一個引數來將它們新增到繪圖中。我們還可以設定軸的屬性,例如半徑線和文字的顏色、軸刻度標籤等。
我們必須使用 gca
命令獲取當前軸,然後我們可以使用這些軸來更改軸的屬性。我們要在 axes 物件後面加一個點,然後加上屬性名,等號後面就可以設定屬性值了。
例如,讓我們更改極座標圖中半徑線的顏色。請參閱下面的程式碼。
clc
clear
My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)
x = gca;
x.RColor = 'red';
輸出:
檢查此連結以獲取有關極軸屬性的更多詳細資訊。
MATLAB 中的 3D 極座標圖
如果我們想在 3D 平面中建立極座標圖,我們必須將極座標更改為笛卡爾座標,因為極座標只有二維,而我們需要三個維度來建立 3D 圖。
我們可以使用 pol2cart()
函式將極座標轉換為笛卡爾座標,然後使用 surf()
函式在 3D 平面上建立曲面圖。用於將極座標轉換為笛卡爾座標的演算法如下圖所示。
例如,讓我們將極座標圖的極座標轉換為笛卡爾座標,並使用 surf()
函式建立一個 3D 圖。請參閱下面的程式碼。
clc
clear
My_theta = 0:0.1:2*pi;
My_rho = sin(My_theta);
t = meshgrid(linspace(0,2*pi,63));
[x,y,z] = pol2cart(My_theta, My_rho, t);
surf(x,y,z)
輸出:
在上面的程式碼中,我們在 pol2cart()
函式中使用了三個輸入。第一個輸入是角度向量,第二個是點到原點的距離向量,第三個矩陣是我們要在其上建立 3D 圖的網格。
上圖與極座標圖無關,因為我們在上圖中沒有角度和半徑尺寸。
在極座標圖中,我們可以看到一點關於原點的角度和半徑,但在上面的圖中,這是不可能的。當我們只想獲取點的角度和半徑資訊時,不需要建立 3D 極座標圖;我們可以將 polarplot()
函式用於 2D 極座標圖。
檢視此連結瞭解有關 polarplot()
函式的更多詳細資訊。檢視此連結瞭解有關用於建立 3D 繪圖的 surf()
函式的更多詳細資訊。