How to make axes have proportional scales?

조회 수: 472 (최근 30일)
HamA
HamA 2017년 11월 4일
댓글: Walter Roberson 2021년 12월 21일
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

채택된 답변

Walter Roberson
Walter Roberson 2017년 11월 4일
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
Joshua
Joshua 2021년 12월 21일
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 2021년 12월 21일
xlim?

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

karipuff
karipuff 2019년 11월 13일
daspect([1 1 1])
  댓글 수: 1
Walter Roberson
Walter Roberson 2019년 11월 13일
Yes, this is another way to set the axes dataaspect property

댓글을 달려면 로그인하십시오.


Ermanno Manca
Ermanno Manca 2020년 6월 23일
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
Ermanno Manca
Ermanno Manca 2020년 6월 24일
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!
Jonahtan González
Jonahtan González 2021년 1월 19일
@Walter Roberson thank you very much.
app.MyAxes1.DataAspectRatio = [1 1 1]
Worked for me.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by