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

14 views (last 30 days)

Show older comments

Alexandra Roxana
on 8 Jun 2023

Edited: Alexandra Roxana
on 10 Jun 2023

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
on 9 Jun 2023

### Accepted Answer

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
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?

### More Answers (0)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!