
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "gallery/statistics/boxplot.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. meta::
        :keywords: codex

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

        :ref:`Go to the end <sphx_glr_download_gallery_statistics_boxplot.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_statistics_boxplot.py:


=================================
Artist customization in box plots
=================================

This example demonstrates how to use the various keyword arguments to fully
customize box plots. The first figure demonstrates how to remove and add
individual components (note that the mean is the only value not shown by
default). The second figure demonstrates how the styles of the artists can be
customized. It also demonstrates how to set the limit of the whiskers to
specific percentiles (lower right Axes)

A good general reference on boxplots and their history can be found here:
https://vita.had.co.nz/papers/boxplots.pdf

.. GENERATED FROM PYTHON SOURCE LINES 17-27

.. code-block:: Python


    import matplotlib.pyplot as plt
    import numpy as np

    # fake data
    np.random.seed(19680801)
    data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75)
    labels = list('ABCD')
    fs = 10  # fontsize








.. GENERATED FROM PYTHON SOURCE LINES 28-29

Demonstrate how to toggle the display of different elements:

.. GENERATED FROM PYTHON SOURCE LINES 29-58

.. code-block:: Python


    fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True)
    axs[0, 0].boxplot(data, tick_labels=labels)
    axs[0, 0].set_title('Default', fontsize=fs)

    axs[0, 1].boxplot(data, tick_labels=labels, showmeans=True)
    axs[0, 1].set_title('showmeans=True', fontsize=fs)

    axs[0, 2].boxplot(data, tick_labels=labels, showmeans=True, meanline=True)
    axs[0, 2].set_title('showmeans=True,\nmeanline=True', fontsize=fs)

    axs[1, 0].boxplot(data, tick_labels=labels, showbox=False, showcaps=False)
    tufte_title = 'Tufte Style \n(showbox=False,\nshowcaps=False)'
    axs[1, 0].set_title(tufte_title, fontsize=fs)

    axs[1, 1].boxplot(data, tick_labels=labels, notch=True, bootstrap=10000)
    axs[1, 1].set_title('notch=True,\nbootstrap=10000', fontsize=fs)

    axs[1, 2].boxplot(data, tick_labels=labels, showfliers=False)
    axs[1, 2].set_title('showfliers=False', fontsize=fs)

    for ax in axs.flat:
        ax.set_yscale('log')
        ax.set_yticklabels([])

    fig.subplots_adjust(hspace=0.4)
    plt.show()





.. image-sg:: /gallery/statistics/images/sphx_glr_boxplot_001.png
   :alt: Default, showmeans=True, showmeans=True, meanline=True, Tufte Style  (showbox=False, showcaps=False), notch=True, bootstrap=10000, showfliers=False
   :srcset: /gallery/statistics/images/sphx_glr_boxplot_001.png, /gallery/statistics/images/sphx_glr_boxplot_001_2_00x.png 2.00x
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 59-60

Demonstrate how to customize the display different elements:

.. GENERATED FROM PYTHON SOURCE LINES 60-98

.. code-block:: Python


    boxprops = dict(linestyle='--', linewidth=3, color='darkgoldenrod')
    flierprops = dict(marker='o', markerfacecolor='green', markersize=12,
                      markeredgecolor='none')
    medianprops = dict(linestyle='-.', linewidth=2.5, color='firebrick')
    meanpointprops = dict(marker='D', markeredgecolor='black',
                          markerfacecolor='firebrick')
    meanlineprops = dict(linestyle='--', linewidth=2.5, color='purple')

    fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True)
    axs[0, 0].boxplot(data, boxprops=boxprops)
    axs[0, 0].set_title('Custom boxprops', fontsize=fs)

    axs[0, 1].boxplot(data, flierprops=flierprops, medianprops=medianprops)
    axs[0, 1].set_title('Custom medianprops\nand flierprops', fontsize=fs)

    axs[0, 2].boxplot(data, whis=(0, 100))
    axs[0, 2].set_title('whis=(0, 100)', fontsize=fs)

    axs[1, 0].boxplot(data, meanprops=meanpointprops, meanline=False,
                      showmeans=True)
    axs[1, 0].set_title('Custom mean\nas point', fontsize=fs)

    axs[1, 1].boxplot(data, meanprops=meanlineprops, meanline=True,
                      showmeans=True)
    axs[1, 1].set_title('Custom mean\nas line', fontsize=fs)

    axs[1, 2].boxplot(data, whis=[15, 85])
    axs[1, 2].set_title('whis=[15, 85]\n#percentiles', fontsize=fs)

    for ax in axs.flat:
        ax.set_yscale('log')
        ax.set_yticklabels([])

    fig.suptitle("I never said they'd be pretty")
    fig.subplots_adjust(hspace=0.4)
    plt.show()




.. image-sg:: /gallery/statistics/images/sphx_glr_boxplot_002.png
   :alt: I never said they'd be pretty, Custom boxprops, Custom medianprops and flierprops, whis=(0, 100), Custom mean as point, Custom mean as line, whis=[15, 85] #percentiles
   :srcset: /gallery/statistics/images/sphx_glr_boxplot_002.png, /gallery/statistics/images/sphx_glr_boxplot_002_2_00x.png 2.00x
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 99-107

.. tags:: plot-type: boxplot, domain: statistics

.. admonition:: References

   The use of the following functions, methods, classes and modules is shown
   in this example:

   - `matplotlib.axes.Axes.boxplot` / `matplotlib.pyplot.boxplot`


.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 2.140 seconds)


.. _sphx_glr_download_gallery_statistics_boxplot.py:

.. only:: html

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

    .. container:: sphx-glr-download sphx-glr-download-jupyter

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

    .. container:: sphx-glr-download sphx-glr-download-python

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

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: boxplot.zip <boxplot.zip>`


.. only:: html

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

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
