|
From: Christoph G. <cg...@uc...> - 2013-10-14 06:53:46
|
On 10/13/2013 7:49 PM, Aiyong WANG wrote:
> Today I setuped a ubuntu virtual machine, installed matplotlib 1.3.1
> (builded and installed from source), installed ImageMagick via
> 'apt-get', and tried again that sample.
> It worked.
>
> So Does the imagemagick writer not work on Windows, or am I missing
> something in my Win7 ?
>
> Can anybody help ?
> Thank you.
>
>
> 2013/10/13 Aiyong WANG <gep...@gm... <mailto:gep...@gm...>>
>
> Hi.
> I'm using windows 7, with python(x,y) 2.7.5.0 installed. I then
> installed matplotlib 1.3.1 and imagemagick.
> Something goes wrong when try to save animation as a gif file.
> I used a base_animation.py within ipython notebook as followed:
>
> code:
> -------------------------------------------------------------------------------------
> import numpy as np
> from matplotlib import pyplot as plt
> from matplotlib import animation
> # First set up the figure, the axis, and the plot element we want to
> animate
> fig = plt.figure()
> ax = fig.add_subplot(111, xlim=(0, 2), ylim=(-2, 2))
> line, = ax.plot([], [], lw=2)
> # initialization function: plot the background of each frame
> def init():
> line.set_data([], [])
> return line,
> # animation function. This is called sequentially
> 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,
> # call the animator. blit=True means only re-draw the parts that
> have changed.
> anim = animation.FuncAnimation(fig, animate, init_func=init,
> frames=100, interval=20, blit=True)
> # this is how you save your animation to file:
> #anim.save('animation.gif', writer='imagemagick_file', fps=30)
> anim.save('animation.gif', writer='imagemagick', fps=30)
> plt.show()
> ----------------------------------------------------------------------------------
>
>
>
> And I got an error message like this:
>
> ---------------------------------------------------------------------------
> RuntimeError Traceback (most recent call last)
> <ipython-input-2-7b2f7b9edcb4> in<module>()
> 26 # this is how you save your animation to file:
> 27 #anim.save('animation.gif', writer='imagemagick_file', fps=30)
> ---> 28 anim.save('animation.gif', writer='imagemagick', fps=30)
> 29
> 30 plt.show()
>
> D:\Python27\lib\site-packages\matplotlib\animation.pyc insave(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)
> 716 #TODO: Need to see if turning off blit is really necessary
> 717 anim._draw_next_frame(d, blit=False)
> --> 718 writer.grab_frame(**savefig_kwargs)
> 719
> 720 # Reconnect signal for first draw if necessary
>
> D:\Python27\lib\site-packages\matplotlib\animation.pyc ingrab_frame(self, **savefig_kwargs)
> 202 # frame format and dpi.
> 203 self.fig.savefig(self._frame_sink(), format=self.frame_format,
> --> 204 dpi=self.dpi, **savefig_kwargs)
> 205 except RuntimeError:
> 206 out, err= self._proc.communicate()
>
> D:\Python27\lib\site-packages\matplotlib\figure.pyc insavefig(self, *args, **kwargs)
> 1419 self.set_frameon(frameon)
> 1420
> -> 1421 self.canvas.print_figure(*args, **kwargs)
> 1422
> 1423 if frameon:
>
> D:\Python27\lib\site-packages\matplotlib\backend_bases.pyc inprint_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
> 2218 orientation=orientation,
> 2219 bbox_inches_restore=_bbox_inches_restore,
> -> 2220 **kwargs)
> 2221 finally:
> 2222 if bbox_inchesand restore_bbox:
>
> D:\Python27\lib\site-packages\matplotlib\backends\backend_agg.pyc inprint_raw(self, filename_or_obj, *args, **kwargs)
> 495 close= False
> 496 try:
> --> 497 renderer._renderer.write_rgba(filename_or_obj)
> 498 finally:
> 499 if close:
>
> RuntimeError: Error writing to file
>
> --
>
> Can anybody help?
> ------------------------------------------------------------------
> WANG Aiyong
>
>
>
>
> --
> ------------------------------------------------------------------
> WANG Aiyong
`convert.exe` is a Windows system file. Set `animation.convert_path` in
`matplotlib.rc` to the full path to ImageMagick's `convert.exe`. Works
for me.
Christoph
|