Changing Axes direction with positive z-axis downwards

173 views (last 30 days)
Ryan Hirani on 13 Mar 2019
Commented: Sagar Chawla on 3 Apr 2022
Hello, I would like to change the direction of a 3d plot I am making. By default, Matlab has positive x-axis backwards, y-axis toward left side and z-axis toward upward direction (as in the attached picture). While maintaining the right hand coordinate system, I would like to switch the axis such that z-axis is positive downwards, x-axis toward right side and y-axis toward forward direction.
Here's a part of the code if that's any help.
[x,y,z] = sphere;
figure(1)
surf(x,y,z+1.5)
hold on
p0 = zeros(6,3);
p1 = r_LPSphere0_0';
quiver3(p0(:,1), p0(:,2), p0(:,3), p1(:,1), p1(:,2), p1(:,3))
xlabel('x-axis')
ylabel('y-axis')
zlabel('z-axis')

Brian Hart on 13 Mar 2019
Hi Ryan,
The first step is to change your second line to say
f = figure(1);
This gives you a handle to update the figure properties. To flip the z axis,
f.CurrentAxes.ZDir = 'Reverse'
To change the other two axes, first look at the current viewpoint, called the "camera position":
>> f.CurrentAxes.CameraPosition
ans =
-9.1314 -11.9003 -7.1603
If you change the z position of the view point, you get something that I think matches what you are looking for:
>> f.CurrentAxes.CameraPosition = [-9 -12 +7]

Star Strider on 15 Mar 2019
If you only want to reverse the direcrtion of the z-axis, try this (after the surf call):
set(gca, 'ZDir','reverse')
The other axes remain unaffected.
Sagar Chawla on 3 Apr 2022
How to change the position of axis. Like z in place of x and y in place of z.

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by