.. _animation-basic_example_writer:

animation example code: basic_example_writer.py
===============================================

[`source code <basic_example_writer.py>`_]

::

    """
    ===================
    Saving an animation
    ===================
    
    This example showcases the same animations as `basic_example.py`, but instead
    of displaying the animation to the user, it writes to files using a
    MovieWriter instance.
    """
    
    # -*- noplot -*-
    import numpy as np
    import matplotlib
    matplotlib.use("Agg")
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    
    
    def update_line(num, data, line):
        line.set_data(data[..., :num])
        return line,
    
    # Set up formatting for the movie files
    Writer = animation.writers['ffmpeg']
    writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)
    
    
    fig1 = plt.figure()
    
    data = np.random.rand(2, 25)
    l, = plt.plot([], [], 'r-')
    plt.xlim(0, 1)
    plt.ylim(0, 1)
    plt.xlabel('x')
    plt.title('test')
    line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
                                       interval=50, blit=True)
    line_ani.save('lines.mp4', writer=writer)
    
    fig2 = plt.figure()
    
    x = np.arange(-9, 10)
    y = np.arange(-9, 10).reshape(-1, 1)
    base = np.hypot(x, y)
    ims = []
    for add in np.arange(15):
        ims.append((plt.pcolor(x, y, base + add, norm=plt.Normalize(0, 30)),))
    
    im_ani = animation.ArtistAnimation(fig2, ims, interval=50, repeat_delay=3000,
                                       blit=True)
    im_ani.save('im.mp4', writer=writer)
    

Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)