Note
Go to the end to download the full example code.
12.3.10.1.12. 2D animation#
This example demonstrates how matplotlib can be used to create animated movie and export these in the mp4 movie format.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
def f(x, y):
return np.sin(x) + np.cos(y)
x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
# ims is a list of lists, each row is a list of artists to draw in the
# current frame; here we are just animating one artist, the image, in
# each frame
ims = []
for i in range(60):
x += np.pi / 15.0
y += np.pi / 20.0
im = ax.imshow(f(x, y), animated=True)
if i == 0:
ax.imshow(f(x, y)) # show an initial one first
ims.append([im])
ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)
To save the animation, use e.g.
ani.save("movie.mp4")
or
writer = animation.FFMpegWriter(
fps=15, metadata=dict(artist='Me'), bitrate=1800)
ani.save("movie.mp4", writer=writer)
plt.show()
Total running time of the script: (0 minutes 5.436 seconds)