2012-08-10 2 views
5

Ho i dati 3D tracciati utilizzando la funzione 'plot3'. Vorrei limitare gli assi Y e Z in modo tale che siano uguali in scala. L'asse X dovrebbe essere ridimensionato automaticamente come al solito.Scale assi di corrispondenza

so da here che posso fare l'asse X è l'unica ad essere scalata automaticamente utilizzando il comando:

axis 'auto x'; 

Tuttavia, questo provoca l'Y e Z assi da disegnare da 0 a Solo 1; i miei dati spesso superano questo in tutti gli assi. Quello che sto cercando è un grafico che contiene tutti i dati in una singola vista, ma con il più piccolo degli assi Y o Z ridimensionato in modo che gli assi Y e Z siano equivalenti in scala.

Qualsiasi aiuto sarebbe stato accolto con gratitudine.

risposta

7

Prova daspect.

plot3(5*rand(10,1),10*rand(10,1),rand(10,1)) 

tmpAspect=daspect(); 
daspect(tmpAspect([1 2 2])) 

daspect() restituisce le proporzioni corrente prodotta per asse 'auto'.

daspect(tmpAspect([1 2 2])) quindi impone che y e z abbiano la stessa scala.

4

Come su

axis equal 

o anche

axis tight 
axis equal 

sia dopo la trama è stato elaborato.

È questo che intendi?

Digitare help axis al prompt dei comandi Matlab per ulteriori funzionalità della funzione axis.

+1

Sì - "asse uguale" fa il lavoro, tranne che voglio solo che questo si applichi agli assi Y e Z; l'asse X dovrebbe rimanere così com'è – CaptainProg