Sometimes, we want to animate a scatter plot with Python matplotlib.
In this article, we’ll look at how to animate a scatter plot with Python matplotlib.
How to animate a scatter plot with Python matplotlib?
To animate a scatter plot with Python matplotlib, we can use the celluloid
package.
To install it, we run
pip install celluloid
Then we use it by writing
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
from celluloid import Camera
numpoints = 10
points = np.random.random((2, numpoints))
colors = cm.rainbow(np.linspace(0, 1, numpoints))
camera = Camera(plt.figure())
for _ in range(100):
points += 0.1 * (np.random.random((2, numpoints)) - .5)
plt.scatter(*points, c=colors, s=100)
camera.snap()
anim = camera.animate(blit=True)
anim.save('scatter.mp4')
to create random points with np.random.random
.
Then we call cm.rainbow
to assign color to the points.
Then we create the celluloid Camera
object with the plt
plots.
Next, we create a for loop and move the points in the loop with
points += 0.1 * (np.random.random((2, numpoints)) - .5)
Then we create a scatter plot of the points
with
plt.scatter(*points, c=colors, s=100)
Next we call camera.snap()
to snap a frame of the current plot.
Then we call `camera.animate to animate the frames.
And we call save
to save the file as scatter.mp4.
Conclusion
To animate a scatter plot with Python matplotlib, we can use the celluloid
package.