Same aspect ratio for the z-axis in a surface plot

9 views (last 30 days)
I have a surface plot
and the x-axis and y-axis have the same ratio. I wish for the z-axis to have the same ratio. I have used
daspect ([1 1 1])
but it turns into a 2D plot.
I have used this code for the same aspect ratio for the x-axis and y-axis.
h=get(gca,'DataAspectRatio');
if h(3)==1
set(gca,'DataAspectRatio',[1 1 1/max(h(1:2))])
else
set(gca,'DataAspectRatio',[1 1 h(3)])
end
  3 Comments
Mathieu NOE
Mathieu NOE on 9 Jun 2023
maybe you get a 2D plot because the range of your z axis is 1000 times smaller than the range of x, y axes

Sign in to comment.

Accepted Answer

Simon Chan
Simon Chan on 10 Jun 2023
As mentioned by Mathieu NOE in the comment section, your z-axis data is 1000 times smaller than the range of x and y-axes data. Hence the ratio between them should be rescale accordingly.
Check whether this is what you want or not.
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surface(X/5+1,Y/3.5,Z*1e-3) % Just make sure the range of the demo data is close to your data
view(3)
daspect ([1 1 1e-3]);
  10 Comments
Simon Chan
Simon Chan on 10 Jun 2023
Glad to see you come up with a new idea. Just curious your data along z-axis is also in time unit?
Alexandra Roxana
Alexandra Roxana on 10 Jun 2023
Edited: Alexandra Roxana on 10 Jun 2023
No, it is the solution so it doesn't work. I'm thinking at how I could plot this if for instance, I would measure on a piece of paper with a ruler, this is how I would like for it to look. The grid should be very detailed. This is how a part of the solution looks like:

Sign in to comment.

More Answers (0)

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!