Domanda

Sto utilizzando grafici polari (POLAR (THETA, RHO)) in MATLAB.

Esiste un modo semplice per fissare l'intervallo per dire l'asse radiale, 1.5?

Sto cercando qualcosa di analogo ai comandi xlim, ylim per gli assi cartesiani. Non ho ancora trovato nulla nei documenti.

È stato utile?

Soluzione

Ecco come sono riuscito a farlo.

Il diagramma polare MATLAB (se si guardano le opzioni di Grafica gestibile disponibili) non ha niente come xlim o ylim. Tuttavia, mi sono reso conto che la prima cosa tracciata imposta l'intervallo, quindi sono stato in grado di tracciare una funzione con intervallo di raggio [-.5 .5] su un diagramma [-1 1] come segue:

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

Non sembra molto bello e speriamo che ci sia un modo migliore per farlo, ma funziona.

Altri suggerimenti

questo ha funzionato per me ... volevo che l'intervallo del raggio andasse a 30, quindi per prima cosa ho disegnato questo

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

e quindi ho tracciato ciò a cui ero realmente interessato. Questo primo punto è nascosto dietro i segni della griglia. assicurati di includere

hold off

dopo il tuo ultimo comando di stampa.

La soluzione semplice è quella di creare un grafico falso e impostarne il colore su bianco.

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

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

Nel caso in cui qualcuno lo trovi, ecco la soluzione :

Come sottolineato da Scottie T e gnovice , Matlab utilizza fondamentalmente la funzione polare come interfaccia per lo standard trame, ma con un sacco di formattazione dietro le quinte per renderlo polare. Guarda i valori delle proprietà XLim e YLim di un diagramma polare e noterai che sono letteralmente i limiti xey del tuo diagramma in coordinate cartesiane. Quindi, per impostare un limite di raggio, usa xlim e ylim, o axis, e sii intelligente sui valori impostati:

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

... questo è tutto. Happy Matlabbing :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top