.. _event_handling-figure_axes_enter_leave:

event_handling example code: figure_axes_enter_leave.py
=======================================================

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

::

    """
    Illustrate the figure and axes enter and leave events by changing the
    frame colors on enter and leave
    """
    import matplotlib.pyplot as plt
    
    def enter_axes(event):
        print 'enter_axes', event.inaxes
        event.inaxes.patch.set_facecolor('yellow')
        event.canvas.draw()
    
    def leave_axes(event):
        print 'leave_axes', event.inaxes
        event.inaxes.patch.set_facecolor('white')
        event.canvas.draw()
    
    def enter_figure(event):
        print 'enter_figure', event.canvas.figure
        event.canvas.figure.patch.set_facecolor('red')
        event.canvas.draw()
    
    def leave_figure(event):
        print 'leave_figure', event.canvas.figure
        event.canvas.figure.patch.set_facecolor('grey')
        event.canvas.draw()
    
    fig1 = plt.figure()
    fig1.suptitle('mouse hover over figure or axes to trigger events')
    ax1 = fig1.add_subplot(211)
    ax2 = fig1.add_subplot(212)
    
    fig1.canvas.mpl_connect('figure_enter_event', enter_figure)
    fig1.canvas.mpl_connect('figure_leave_event', leave_figure)
    fig1.canvas.mpl_connect('axes_enter_event', enter_axes)
    fig1.canvas.mpl_connect('axes_leave_event', leave_axes)
    
    fig2 = plt.figure()
    fig2.suptitle('mouse hover over figure or axes to trigger events')
    ax1 = fig2.add_subplot(211)
    ax2 = fig2.add_subplot(212)
    
    fig2.canvas.mpl_connect('figure_enter_event', enter_figure)
    fig2.canvas.mpl_connect('figure_leave_event', leave_figure)
    fig2.canvas.mpl_connect('axes_enter_event', enter_axes)
    fig2.canvas.mpl_connect('axes_leave_event', leave_axes)
    
    plt.show()
    
    
    

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