Update the "Rotating a 3D plot" gallery example to show all 3 rotation axes#21737
Merged
timhoffm merged 2 commits intomatplotlib:mainfrom Dec 4, 2021
Merged
Conversation
Contributor
Author
|
Note that the code to generate that .mp4 is slightly different, but produces the same result: from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
# Grab some example data.
X, Y, Z = axes3d.get_test_data(0.05)
# Plot a basic wireframe.
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
# Set the axis labels
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
# Define an update function to pass to FuncAnimation
def update_view(frame):
# Normalize angle to the range [-180, 180] for display
angle = (frame + 180) % 360 - 180
# Cycle through rotating the elevation, azimuth, roll, then all
elev = azim = roll = 0
if frame <= 360:
elev = angle
elif frame <= 360*2:
azim = angle
elif frame <= 360*3:
roll = angle
else:
elev = azim = roll = angle
# Update the axis view and title
ax.view_init(elev, azim, roll)
plt.title('Elevation: %d°, Azimuth: %d°, Roll: %d°' % (elev, azim, roll))
# Plot the animation
anim = animation.FuncAnimation(fig, update_view, frames=360*4+1, interval=15)
anim.save("3d_rotations.mp4") |
92fcbdb to
bcdfd67
Compare
Member
|
Please rebase to go over the committed version of #21426. |
Rename gallery example for clarity - this animation does not do any rotating
24f60a2 to
81eb253
Compare
timhoffm
approved these changes
Dec 4, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Summary
This PR builds off of #21426 and updates the rotate-axes3d-sgskip.py example to show rotation about each individual view axis, with annotations. Here is the resulting animation:
3d_rotations.mp4
PR Checklist
Tests and Styling
pytestpasses).flake8-docstringsand runflake8 --docstring-convention=all).Documentation
doc/users/next_whats_new/(follow instructions in README.rst there).doc/api/next_api_changes/(follow instructions in README.rst there).