2008-10-22 14 views
15

Ich verwende Polarplots (POLAR (THETA, RHO)) in MATLAB.Befestigen der Radialachse auf MATLAB Polar Plots

Gibt es einen einfachen Weg, um den Bereich für die radiale Achse zu sagen, 1,5?

Ich suche etwas analog zu den Xlim, Ylim Befehle für kartesische Achsen. Habe noch nichts in den Dokumenten gefunden.

Antwort

6

Hier ist, wie ich es geschafft habe.

Das MATLAB Polardiagramm (wenn Sie sich die verfügbaren Handle Graphics Optionen ansehen) hat nichts 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'); 

That sieht nicht sehr gut aus und hoffentlich gibt es einen besseren Weg, aber es funktioniert.

+0

Das ist schlau. Vielen Dank. Ich bin überrascht, dass sie keine direktere Kontrolle über den Radius bieten. –

+0

Ich auch - ich würde nicht denken, dass der Wunsch, den Radius zu optimieren wäre * das * seltene –

+2

Ich habe die gleiche Lösung gefunden. Leider definieren sie kein Polardiagramm als Basisdiagrammtyp, sondern erstellen Patches, um die Achsen zu zeichnen und Ihre Daten in x und y zu transformieren. Schauen Sie sich mal den Code für polar.m an und Sie werden sehen. –

8

dies war 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 versteckt die Rastermarken. Stellen Sie sicher, dass Sie

hold off 

nach Ihrem endgültigen Plotten Befehl enthalten.

+0

Ich schätze die Einfachheit dieser Antwort. Lief wie am Schnürchen! – Shinobii

4

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

Als Scottie T und gnovice wies darauf hin, Matlab grundsätzlich die polare Funktion als Schnittstelle für Standardkurven verwendet , aber mit viel Formatierung hinter den Kulissen, damit es polar aussieht. Sehen Sie sich die Werte der XLim- und YLim-Eigenschaften eines Polardiagramms an, und Sie werden feststellen, dass sie buchstäblich die x- und y-Grenzen Ihres Diagramms in kartesischen Koordinaten sind. 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. Happy Matlabbing :)

6

Einfache Lösung ist es, ein gefälschtes Diagramm zu machen und seine Farbe auf weiß einzustellen.

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

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