title: Memory usage for matplotlib animation
body: <p>I've been tweaking the code from this page <a href="http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/" rel="nofollow">http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/</a> to make my own animation, but it crashes very quickly. Looking at the task manager, I can see that the memory build-up from running the program rises to 1gb within 30 seconds, which is very significant for my less-than-impressive laptop. From the way the code was calling animation(i) to set the y_data on the line every time, is the old data not replaced, causing the memory build-up? I'd like to fix this. My knowledge on the inner workings of matplotlib is limited, and some things I've tried is putting close(), clf(), and gc.collect() in animation(i), but none of them worked.</p>
  
  <pre><code>"""
  Matplotlib Animation Example
  
  author: Jake Vanderplas
  email: vanderplas@astro.washington.edu
  website: http://jakevdp.github.com
  license: BSD
  Please feel free to use and modify this, but keep the above information. Thanks!
  """
  
  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 = plt.axes(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=200, interval=20, blit=True)
  
  # save the animation as an mp4.  This requires ffmpeg or mencoder to be
  # installed.  The extra_args ensure that the x264 codec is used, so that
  # the video can be embedded in html5.  You may need to adjust this for
  # your system: for more information, see
  # http://matplotlib.sourceforge.net/api/animation_api.html
  # anim.save('basic_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'])
  
  plt.show()
  </code></pre>