How to make axes have proportional scales?

Hi, I would like the x and y axes on my surf plot to have proportional scales. I am plotting temperature over a 2D plane. I want to visualise the temperature profile but the x and y axes stretch to fit the figure window, stretching the temperature profile.
I want the axes to have the same 'unit:distance on screen' ratio. How can I do this? I have been finding the aspect ratio help not very helpful Thanks

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 4 Nov. 2017

12 Stimmen

If you want them to have equal scales then
axis equal
Otherwise set the axes DataAspectRatio property. For example,
set(gca,'DataAspectRatio',[10 1 1])
would mean that every 10 units of x is to have the same size as one unit of y -- which would make something of x width 10 and y height 1 into a square.

3 Kommentare

Walter Roberson
Walter Roberson am 4 Nov. 2017
You can adjust the portion for the Z scale by adjusting the last number of the DataAspectRatio. For example if the range of data is 5000 and the range for x is 100 and the range for y is 25, then you could use [100 25 5000] or you could reduce that by dividing through by the minimum to get [4 1 200] to be used.
Joshua
Joshua am 21 Dez. 2021
Hi Walter,
I am plotting some coordinate data and which lies primarily along one axis (y axis). For my plots I wish to have equal axis scales but with a different aspect ratio to reduce white space by adjusting the width of the other axis (x axis). Any idea how to achieve this? The issue is illustrated in the following figures.
Current plot:
Desired (edited in powerpoint):
Of course one could do this manually by changing the aspect ratio of the figure but do you have any Ideas on an easier way?
Regards
Walter Roberson
Walter Roberson am 21 Dez. 2021
xlim?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

karipuff
karipuff am 13 Nov. 2019

1 Stimme

daspect([1 1 1])

1 Kommentar

Walter Roberson
Walter Roberson am 13 Nov. 2019
Yes, this is another way to set the axes dataaspect property

Melden Sie sich an, um zu kommentieren.

Ermanno Manca
Ermanno Manca am 23 Jun. 2020

0 Stimmen

Hi, i'm using Matlab App Designer.
Unfortunately i have the same problem. But by typing "set(gca,'DataAspectRatio',[10 1 1])" it opens a figure instead of changing the axis scale in my app.UIAxis plot.
How can i have the same scale for x and y axis in my app.UIAxis plot?
Thanks a lot

3 Kommentare

gca() appears to work only with traditional figures. Use the explicit handle to the axes instead.
app.MyAxes1.DataAspectRatio = [1 1 1]
or
axis(app.MyAxes1, 'equal')
Ermanno Manca
Ermanno Manca am 24 Jun. 2020
Hey thanks, axis(app.MyAxes1, 'equal') didn't work for me.
I didn't try app.MyAxes1.DataAspectRatio = [1 1 1] but i guess it'll work too.
I found set(app.MyAxes1,'DataAspectRatio',[1 1 1]) so that worked out too.
Thanks for your help and your wuick response!
@Walter Roberson thank you very much.
app.MyAxes1.DataAspectRatio = [1 1 1]
Worked for me.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Line Plots finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by