.. _event_handling-idle_and_timeout:

event_handling example code: idle_and_timeout.py
================================================

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

::

    from __future__ import print_function
    """
    Demonstrate/test the idle and timeout API
    
    WARNING: idle_event is deprecated. Use the animations module instead.
    
    This is only tested on gtk so far and is a prototype implementation
    """
    import numpy as np
    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots()
    
    t = np.arange(0.0, 2.0, 0.01)
    y1 = np.sin(2*np.pi*t)
    y2 = np.cos(2*np.pi*t)
    line1, = ax.plot(y1)
    line2, = ax.plot(y2)
    
    N = 100
    
    
    def on_idle(event):
        on_idle.count += 1
        print('idle', on_idle.count)
        line1.set_ydata(np.sin(2*np.pi*t*(N - on_idle.count)/float(N)))
        event.canvas.draw()
        # test boolean return removal
        if on_idle.count == N:
            return False
        return True
    on_idle.cid = None
    on_idle.count = 0
    
    fig.canvas.mpl_connect('idle_event', on_idle)
    
    plt.show()
    

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