2

matlabで1つの図に複数の極座標プロットを描く方法は?

polar(polar_mat,dir_mat)      
hold all;      
polar(polar_mat,dir_mat_b,'r')  

上記のコードは、2 番目のプロットのみを描画します。

4

1 に答える 1

1

1 つの図に複数の極座標グラフをプロットする方法を次に示します。私subplotは別の例を説明していました。hold on/all極座標プロットでは期待どおりに機能しないことがわかります(右上のサブプロットを参照)。あなたの問題はそれに関連している可能性があります。1 つの回避策は、最初に最大の極座標グラフをプロットしてから、最小の極座標グラフをプロットすることです。

(サブプロット 1) ==> 2 番目の線がプロットされたときに軸の自動サイズ変更を使用して、1 つの軸に2 つの線 ( plot) を連続してプロットするhold all

(サブプロット 2) 2 つ連続してプロットpolarすると、2 番目のグラフがプロットされるときに自動サイズ変更がトリガーされません。上の青い線だけが見えます0

(サブプロット 3) 2 番目のpolarグラフのみ (青) をプロットします。これは私たちが見るべきものです。

(サブプロット 4) 2 つのpolarグラフをまとめると、2 番目のグラフ (青) が最初にプロットされます。軸のプロパティは青いプロット (最大) で設定され、赤いプロット (最小) がその上に描画されます。

あなたの質問でまだ理解できないのは、「2番目のプロットのみを描画する」ということです。ここで説明されているシナリオによれば、「最初のもののみを描画し、2番目のものを部分的に描画する」必要があります。最後に、コメントで読んだように、hold on/all私を含む多くのユーザーにとって問題なく動作するため、matlab インストールのバグである可能性があります。

ここにプロットがあります

ここに画像の説明を入力

そしてコード

figure('Color','w','Position',[10 10 600 600]);  

subplot(2,2,1);  
plot((1:10)+1000,'r');  
hold all;  
plot((1:100).^2,'b');  
legend({'first axes';'second axes'});  
title('axes resized with hold all','FontSize',14);  

subplot(2,2,2);  
t = 0:.01:2*pi;  
polar(t,sin(2*t).*cos(2*t),'r')  
hold all  
polar(t,t.^0.1,'b')  
title('axes NOT resized with hold all','FontSize',14);  

subplot(2,2,3);  
polar(t,t.^0.1,'b')  
title('what blue should be','FontSize',14);  

subplot(2,2,4);  
h2 = polar(t,t.^0.1,'b')  
hold all;  
h1 = polar(t,sin(2*t).*cos(2*t),'r')  
title('plot bigger first','FontSize',14);  
于 2013-09-03T10:30:58.070 に答える