Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 92fcbdb

Browse filesBrowse files
Update rotate-axes3d gallery example
1 parent 761f1ed commit 92fcbdb
Copy full SHA for 92fcbdb

File tree

Expand file treeCollapse file tree

1 file changed

+28
-7
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+28
-7
lines changed

‎examples/mplot3d/rotate_axes3d_sgskip.py

Copy file name to clipboardExpand all lines: examples/mplot3d/rotate_axes3d_sgskip.py
+28-7Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Rotating a 3D plot
44
==================
55
6-
A very simple animation of a rotating 3D plot.
6+
A very simple animation of a rotating 3D plot about all 3 axes.
77
88
See wire3d_animation_demo for another simple example of animating a 3D plot.
99
@@ -17,12 +17,33 @@
1717
fig = plt.figure()
1818
ax = fig.add_subplot(projection='3d')
1919

20-
# load some test data for demonstration and plot a wireframe
21-
X, Y, Z = axes3d.get_test_data(0.1)
22-
ax.plot_wireframe(X, Y, Z, rstride=5, cstride=5)
20+
# Grab some example data and plot a basic wireframe.
21+
X, Y, Z = axes3d.get_test_data(0.05)
22+
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
2323

24-
# rotate the axes and update
25-
for angle in range(0, 360):
26-
ax.view_init(30, angle, 0)
24+
# Set the axis labels
25+
ax.set_xlabel('x')
26+
ax.set_ylabel('y')
27+
ax.set_zlabel('z')
28+
29+
# Rotate the axes and update
30+
for angle in range(0, 360*4 + 1):
31+
# Normalize the angle to the range [-180, 180]
32+
angle_norm = (angle + 180) % 360 - 180
33+
34+
# Cycle through a full rotation of the elevation, azimuth, roll, then all
35+
elev = azim = roll = 0
36+
if angle <= 360:
37+
elev = angle_norm
38+
elif angle <= 360*2:
39+
azim = angle_norm
40+
elif angle <= 360*3:
41+
roll = angle_norm
42+
else:
43+
elev = azim = roll = angle_norm
44+
45+
# Update the axis view and title
46+
ax.view_init(elev, azim, roll)
47+
plt.title('Elevation: %d°, Azimuth: %d°, Roll: %d°' % (elev, azim, roll))
2748
plt.draw()
2849
plt.pause(.001)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.