matplotlib save animation in gif error
Just a reminder, before you use Matplotlib and ImageMagick to convert images or videos to gif, you need to modify Matplotlib's config and add ImageMagick's path.
The following code will show you the config file path of Matplotlib
import matplotlib
matplotlib.matplotlib_fname()
For me the path is
C:\Anaconda\lib\site-packages\matplotlib\mpl-data\matplotlibrc
Then changing animation.convert_path
#animation.convert_path: 'convert' # Path to ImageMagick's convert binary.
# On Windows use the full path since convert
# is also the name of a system tool.
by adding convert.exe path to it
animation.convert_path: C:\Program Files\ImageMagick-6.9.2-Q16-HDRI\convert.exe
Don't forget to remove the #
before animation.convert_path
.
After the above modification, Matplotlib and ImageMagick will perfectly work and output the gif
file you want.
Hope it helps.
This is because matplotlib
does not support GIFs without external programs. If you have imagemagick
correctly installed and configured, this should work:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
def init_animation():
global line
line, = ax.plot(x, np.zeros_like(x))
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1,1)
def animate(i):
line.set_ydata(np.sin(2*np.pi*i / 50)*np.sin(x))
return line,
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(0, 2*np.pi, 200)
ani = matplotlib.animation.FuncAnimation(fig, animate, init_func=init_animation, frames=50)
ani.save('/tmp/animation.gif', writer='imagemagick', fps=30)