.. note::
    :class: sphx-glr-download-link-note

    Click :ref:`here <sphx_glr_download_gallery_widgets_check_buttons.py>` to download the full example code
.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_widgets_check_buttons.py:


=============
Check Buttons
=============

Turning visual elements on and off with check buttons.

This program shows the use of 'Check Buttons' which is similar to
check boxes. There are 3 different sine waves shown and we can choose which
waves are displayed with the check buttons.




.. image:: /gallery/widgets/images/sphx_glr_check_buttons_001.png
    :class: sphx-glr-single-img





.. code-block:: python

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.widgets import CheckButtons

    t = np.arange(0.0, 2.0, 0.01)
    s0 = np.sin(2*np.pi*t)
    s1 = np.sin(4*np.pi*t)
    s2 = np.sin(6*np.pi*t)

    fig, ax = plt.subplots()
    l0, = ax.plot(t, s0, visible=False, lw=2, color='k', label='2 Hz')
    l1, = ax.plot(t, s1, lw=2, color='r', label='4 Hz')
    l2, = ax.plot(t, s2, lw=2, color='g', label='6 Hz')
    plt.subplots_adjust(left=0.2)

    lines = [l0, l1, l2]

    # Make checkbuttons with all plotted lines with correct visibility
    rax = plt.axes([0.05, 0.4, 0.1, 0.15])
    labels = [str(line.get_label()) for line in lines]
    visibility = [line.get_visible() for line in lines]
    check = CheckButtons(rax, labels, visibility)


    def func(label):
        index = labels.index(label)
        lines[index].set_visible(not lines[index].get_visible())
        plt.draw()

    check.on_clicked(func)

    plt.show()


.. _sphx_glr_download_gallery_widgets_check_buttons.py:


.. only :: html

 .. container:: sphx-glr-footer
    :class: sphx-glr-footer-example



  .. container:: sphx-glr-download

     :download:`Download Python source code: check_buttons.py <check_buttons.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: check_buttons.ipynb <check_buttons.ipynb>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    Keywords: matplotlib code example, codex, python plot, pyplot
    `Gallery generated by Sphinx-Gallery
    <https://sphinx-gallery.readthedocs.io>`_
