2008-10-22 7 views
15

J'utilise des tracés polaires (POLAR (THETA, RHO)) dans MATLAB.Fixation de l'axe radial sur les tracés MATLAB Polar

Existe-t-il un moyen facile de fixer la plage de l'axe radial, par exemple 1,5?

Je cherche quelque chose d'analogue aux commandes xlim, ylim pour les axes cartésiens. Je n'ai encore rien trouvé dans les docs.

Répondre

6

Voici comment j'ai été capable de le faire.

Le tracé polaire MATLAB (si vous regardez les options de Handle Graphics disponibles) n'a rien à voir avec xlim ou ylim. Cependant, je me suis aperçu que la première chose tracée définit la gamme, donc je suis en mesure de tracer une fonction avec une plage de rayon [0,5 ± 5] sur un terrain [-1 1] comme suit:

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

Ce ne semble pas très bon et j'espère qu'il y a une meilleure façon de le faire, mais ça fonctionne.

+0

C'est intelligent. Merci. Je suis surpris qu'ils ne fournissent pas un contrôle plus direct sur le rayon. –

+0

Moi aussi - Je ne pense pas que vouloir tordre le rayon serait * que * rare –

+2

Je suis venu avec la même solution. Malheureusement, ils ne définissent pas un tracé polaire comme un type de graphique de base, mais créent des correctifs pour dessiner les axes et transformer vos données en x et y. Jetez un coup d'œil au code de polar.m et vous verrez. –

8

cela a fonctionné pour moi ... je voulais la gamme de rayon pour aller à 30, donc j'ai comploté cette

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

puis comploté ce que je réellement intéressé. Ce premier point tracé est caché derrière les marques de grille. Assurez-vous d'inclure

hold off 

après votre commande de traçage finale.

+0

J'apprécie la simplicité de cette réponse. Travaillé comme un charme! – Shinobii

4

Au cas où quelqu'un d'autre vient à travers cela, voici la solution:

Comme Scottie T et gnovice a souligné, Matlab utilise essentiellement la fonction polaire comme une interface pour les tracés standards , mais avec beaucoup de mise en forme dans les coulisses pour le faire paraître polaire. Regardez les valeurs des propriétés XLim et YLim d'un tracé polaire et vous remarquerez qu'elles sont littéralement les limites x et y de votre tracé en coordonnées cartésiennes. Donc, pour fixer une limite de rayon, utilisez XLIM et ylim ou axe, et être intelligent sur les valeurs définies:

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

... qui est tout ce qu'il ya à faire. Matlabbing heureux :)

6

Une solution simple est de faire un faux graphique et définir sa couleur au blanc.

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

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