Creating animated GIF files out of D3.js animations in Matplotlib

To create animated GIF files from matplotlib animations, we can use the PillowWriter class. This technique is useful for creating animated visualizations that can be easily shared on web platforms or embedded in presentations.

Steps to Create Animated GIFs

  • Set up the matplotlib figure and axes
  • Create initial plot elements (lines, points, etc.)
  • Define initialization and animation functions
  • Create a FuncAnimation object
  • Use PillowWriter to save as GIF format

Example: Animated Sine Wave

Here's how to create an animated sine wave and save it as a GIF ?

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)

def init():
    line.set_data([], [])
    return line,

def animate(i):
    x = np.linspace(0, 2, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
    return line,

ani = animation.FuncAnimation(fig, animate, init_func=init, 
                            frames=200, interval=20, blit=True)

writer = animation.PillowWriter(fps=25)
ani.save("sine.gif", writer=writer)

Key Components

Animation Functions

The init() function sets up the initial state, while animate(i) updates the plot for each frame based on the frame number i.

PillowWriter Configuration

The PillowWriter class handles GIF creation with customizable frame rates. Higher FPS values create smoother animations but larger file sizes.

Parameters

Parameter Purpose Example Value
frames Number of animation frames 200
interval Delay between frames (ms) 20
fps Frames per second in GIF 25
blit Optimize drawing for speed True

Output

The code generates an animated GIF file named "sine.gif" showing a moving sine wave. The animation loops continuously, creating a smooth wave motion effect.

Animated Sine Wave 2 0 -2

Conclusion

Use PillowWriter with FuncAnimation to create animated GIFs from matplotlib plots. This method provides an effective way to share dynamic visualizations across different platforms and media formats.

Updated on: 2026-03-26T00:00:56+05:30

508 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements