Huh, how about that. ContourSet subclasses ScalarMappable, but not Artist.
I don't know if that is intentional or not, but given that most plotting
functions return artists, this would seem to be an anomaly. FuncAnimation
expects a list of Artists. Since QuadContourSet is (apparently) not an
Artist, then that is why it isn't working quite right.
As for blitting, I doubt you are going to need it here. Blitting is really
only advantagous if the computation/draw time of the animated portion is
comparable to the computation/draw time of the unanimated portion.
Contouring tends to be time-consuming (relatively speaking), so I doubt you
will gain much benefit from blitting it.
Ben Root
On Mon, Feb 23, 2015 at 8:53 AM, Ignat Harczuk <igna...@gmail.com> wrote:
> Firstly I would like to apologize in case this should belong in the
> matplotlib-users, I'm not sure if this is dev or users related.
>
>
> Let us say we want to animate a 2D contour plot, then passing the blit =
> True argument to FuncAnimation fails since the QuadContourSet has no axes
> attribute.
>
> Is it for some specific it is implemented like this? And maybe there a
> hack to get this to work?
>
> A working code example with the actually wanted one commented out.
>
> import numpy as np
> import matplotlib.animation as animation
> from matplotlib import pyplot as plt
>
> fig, ax = plt.subplots()
>
> x = np.linspace( -np.pi, np.pi, 50 )
> y = np.linspace( -np.pi, np.pi, 50 )
> X, Y = np.meshgrid( x, y )
> Z = np.zeros( X.shape )
>
> def init():
> cont = ax.contourf( X, Y, Z )
> cbar = plt.colorbar( cont )
> return cont,
>
> def animate( t ):
> k = np.array( [1,1] )
> omega = 0.5
>
> x = np.linspace( -np.pi, np.pi, 50 )
> y = np.linspace( -np.pi, np.pi, 50 )
> X, Y = np.meshgrid( x, y )
> Z = np.exp( 1j * (omega* t - X*k[0] ) ) * np.exp( - 1j * k[1]*Y )
> cont = ax.contourf( X, Y, Z )
> return cont,
>
> #ani = animation.FuncAnimation( fig, animate, frames = 100, interval = 1,
> repeat = False, blit = True, init_func = init,)
> ani = animation.FuncAnimation( fig, animate, frames = 100, interval = 1,
> repeat = False, init_func = init,)
> plt.show()
>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
>
> http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel