On Sunday, November 13, 2011, Daniel Hyams <dhy...@gmail.com> wrote:
> This looks like a bug in matplotlib to me; I get the same thing.
>
> The basic issue is that QuadContourSet is derived from an artist, and
> so does not have all of the artist methods; the animation framework
> depends on the things that it is animating being artists.
>
> The following monkey patch fixes it in the example script (obviously,
> it does not fix the underlying problem; for QuadContourSet to be
> usable in this context, it needs to obey the artist interface).
> Hopefully, it will be enough to get you up and running.  Just add the
> four lines between contour call and the appending of the output of
> contour() into the list "ims", and also put an "import types" at the
> top.
>
>
> #!/usr/bin/env python
> """
> An animated image
> """
> import numpy as np
> import matplotlib.pyplot as plt
> import matplotlib.animation as animation
> import types
> fig = plt.figure()
> 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.
>     y += np.pi / 20.
>     im = plt.contour(f(x, y))
>     def setvisible(self,vis):
>        for c in self.collections: c.set_visible(vis)
>     im.set_visible = types.MethodType(setvisible,im,None)
>     im.axes = plt.gca()
>     ims.append([im])
> ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,
>     repeat_delay=1000)
> ani.save('dynamic_images.mp4')
>
> plt.show()
>

Technically speaking, it is derived from ScalarMappable, not Artist. It is
counter-intuitive, though.

Ben Root
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to