2012-08-10 12 views
5

Ich habe 3D-Daten mit der 'Plot3'-Funktion geplottet. Ich möchte die Y- und Z-Achsen so beschränken, dass sie im Maßstab gleich sind. Die X-Achse sollte wie üblich automatisch skaliert werden.Passende Achsen skaliert

Ich weiß aus here dass ich kann die Make-X-Achse die einzigen, automatisch mit dem Befehl skaliert werden, um:

axis 'auto x'; 

Dies verursacht jedoch die Y- und Z-Achsen von 0 bis aufgetragen werden Nur 1; Meine Daten überschreiten das oft in allen Achsen. Was ich suche, ist ein Diagramm, das alle Daten in einer einzigen Ansicht enthält, aber mit der kleinsten der Y- oder Z-Achsen, die so verkleinert sind, dass die Y- und Z-Achsen in der Skalierung äquivalent sind.

Jede Hilfe wäre dankbar erhalten.

Antwort

7

Versuchen Sie daspect.

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

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

daspect() gibt das aktuelle Seitenverhältnis wie durch die Achse 'Auto' erzeugt.

daspect(tmpAspect([1 2 2])) dann erzwingt, dass y und z die gleiche Skalierung haben.

4

Wie wäre es

axis equal 

oder sogar

axis tight 
axis equal 

beide nach die Handlung gezogen wurde.

Ist das was du meinst?

Geben Sie help axis an der Matlab-Eingabeaufforderung für weitere Funktionen der axis-Funktion ein.

+1

Ja - "axis equal" erledigt die Arbeit, außer dass ich das nur auf die Y- und Z-Achsen anwenden möchte; Die X-Achse sollte so bleiben wie sie ist – CaptainProg