web-dev-qa-db-ja.com

MATLAB極座標プロットの根軸の修正

MATLABで極座標プロット(POLAR(THETA、RHO))を使用しています。

根軸の範囲を1.5に固定する簡単な方法はありますか?

デカルト軸のxlim、ylimコマンドに類似したものを探しています。ドキュメントにはまだ何も見つかりませんでした。

15
Adam Holmberg

これが私がそれをすることができた方法です。

MATLAB極座標プロット(使用可能なHandle Graphicsオプションを見ると)には、xlimやylimのようなものはありません。しかし、最初にプロットしたものが範囲を設定することに気付いたので、次のように[-11]プロットに半径範囲[-.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');

それはあまり良く見えず、うまくいけばそれを行うためのより良い方法がありますが、それは機能します。

6
Tim Whitcomb

これは私のために働きました...私は半径範囲を30にしたかったので、私は最初にこれをプロットしました

polar(0,30,'-k')
hold on

次に、私が実際に興味を持っていたものをプロットしました。この最初にプロットされたポイントは、グリッドマークの後ろに隠れています。必ず含めるようにしてください

hold off

最後のプロットコマンドの後。

8
paul

簡単な解決策は、偽のグラフを作成し、その色を白に設定することです。

fake=100;
polar(0,fake,'w');
hold on;

real=10;
polar(0,real,'w');
6
Ayesha Hakim

他の誰かがこれに遭遇した場合に備えて、ここにtheソリューションがあります:

As Scottie T and gnovice指摘されているように、Matlabは基本的に極関数を標準プロットのインターフェイスとして使用しますが、極に見えるように舞台裏で多くのフォーマットを行います。極プロットのXLimプロパティとYLimプロパティの値を見ると、それらがデカルト座標でのプロットの文字通りのxおよびy制限であることがわかります。したがって、半径の制限を設定するには、xlimとylim、またはaxisを使用し、設定する値について賢くします。

rlim = 10;
axis([-1 1 -1 1]*rlim);

...これですべてです。ハッピーマットラブ:)

4
CalPolyAero