Frage

Ich bin mit Polardiagramme (POLAR (THETA, RHO)) in MATLAB.

Gibt es eine einfache Möglichkeit, den Bereich für die radiale Achse zu fixieren zu sagen, 1.5?

Ich bin auf der Suche nach etwas analog zu der Xlim, Befehle ylim für kartesische Achsen. Noch nicht alles in der Dokumentation gefunden.

War es hilfreich?

Lösung

Hier ist, wie ich war in der Lage, es zu tun.

Die MATLAB Polarplot (wenn Sie den Handle Graphics Optionen zur Verfügung zu buchen) nicht so etwas wie Xlim oder ylim. Allerdings erkannte ich, dass das erste, was setzt den Bereich aufgetragen, so konnte ich eine Funktion mit Radiusbereich zeichnen [-.5 0,5] auf [-1 1] Handlung wie folgt:

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');

Das ist nicht sehr gut aussieht und hoffentlich gibt es einen besseren Weg, es zu tun, aber es funktioniert.

Andere Tipps

Dies ist für mich ... ich den Radiusbereich bis 30 gehen wollte, so dass ich aufgetragen ersten

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

und dann aufgetragen, was ich in wirklich interessiert war. Dieser erste aufgetragener Punkt hinter den Gittermarkierungen verborgen ist. stellen Sie sicher, nur schließen

hold off

nach dem letzten Plottbefehles.

Einfache Lösung ist eine gefälschte Diagramm zu machen und seine Farbe auf Weiß eingestellt.

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

real=10;
polar(0,real,'w');

Falls jemand über diese kommt, ist hier die Lösung:

Scottie T und gnovice wies darauf hin, verwendet Matlab grundsätzlich die polare Funktion als Schnittstelle für Standard Plots, aber hinter den Kulissen mit vieler Formatierung es polar aussehen. Schauen Sie sich die Werte der Xlim und YLim Eigenschaften eines Polarplot und Sie werden feststellen, dass sie buchstäblich die x- und y-Grenzen Ihres Grundstücks in rechtwinkligen Koordinaten. Also, einen Radius Grenze zu setzen, verwenden Sie Xlim und ylim oder Achse und smart über die eingestellten Werte:

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

... das ist alles, was es ist. Glückliche Matlabbing:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top