MATLAB極座標プロットの放射軸の修正
-
03-07-2019 - |
質問
MATLABで極座標プロット(POLAR(THETA、RHO))を使用しています。
半径軸の範囲を1.5に修正する簡単な方法はありますか?
デカルト軸用のxlim、ylimコマンドに似たものを探しています。ドキュメントにはまだ何も見つかりませんでした。
解決
次のようにできました。
MATLAB極座標プロット(利用可能な[ハンドルグラフィックス]オプションを見る場合)には、xlimやylimなどはありません。ただし、最初にプロットしたものが範囲を設定することに気づいたため、次のように[-1 1]プロットに半径範囲[-.5 .5]の関数をプロットできました。
theta = linspace(0,2*pi,100);
r = sin(2*theta) .* cos(2*theta);
r_max = 1;
h_fake = polar(theta,r_max*ones(size(theta)));
hold on;
h = polar(theta, r);
set(h_fake, 'Visible', 'Off');
それはあまり良く見えませんし、もっと良い方法があればいいのですが、うまくいきます。
他のヒント
これは私のために働いた...半径範囲を30にしたかったので、最初にこれをプロットした
polar(0,30,'-k')
hold on
次に、実際に興味のあるものをプロットしました。この最初にプロットされたポイントは、グリッドマークの後ろに隠れています。必ず含めてください
hold off
最終的なプロットコマンドの後。
簡単な解決策は、偽のグラフを作成し、その色を白に設定することです。
fake=100;
polar(0,fake,'w');
hold on;
real=10;
polar(0,real,'w');
他の誰かがこれに遭遇した場合、 ソリューションがあります:
Scottie T および gnovice が指摘したように、Matlabは基本的に極関数を標準のインターフェースとして使用しますプロットが、極秘に見えるように舞台裏で多くの書式設定を行います。極座標プロットのXLimおよびYLimプロパティの値を見ると、これらが文字通りデカルト座標のプロットのxおよびyの制限であることがわかります。そのため、半径の制限を設定するには、xlimとylim、または軸を使用し、設定する値を賢くします。
rlim = 10;
axis([-1 1 -1 1]*rlim);
...これですべてです。 Happy Matlabbing:)