.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/statistics/bxp.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. meta:: :keywords: codex .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_statistics_bxp.py: ======================= Boxplot drawer function ======================= This example demonstrates how to pass pre-computed box plot statistics to the box plot drawer. 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. A good general reference on boxplots and their history can be found here: http://vita.had.co.nz/papers/boxplots.pdf .. GENERATED FROM PYTHON SOURCE LINES 16-30 .. code-block:: Python import matplotlib.pyplot as plt import numpy as np import matplotlib.cbook as cbook # fake data np.random.seed(19680801) data = np.random.lognormal(size=(37, 4), mean=1.5, sigma=1.75) labels = list('ABCD') # compute the boxplot stats stats = cbook.boxplot_stats(data, labels=labels, bootstrap=10000) .. GENERATED FROM PYTHON SOURCE LINES 31-34 After we've computed the stats, we can go through and change anything. Just to prove it, I'll set the median of each set to the median of all the data, and double the means .. GENERATED FROM PYTHON SOURCE LINES 34-43 .. code-block:: Python for n in range(len(stats)): stats[n]['med'] = np.median(data) stats[n]['mean'] *= 2 print(list(stats[0])) fs = 10 # fontsize .. rst-class:: sphx-glr-script-out .. code-block:: none ['label', 'mean', 'iqr', 'cilo', 'cihi', 'whishi', 'whislo', 'fliers', 'q1', 'med', 'q3'] .. GENERATED FROM PYTHON SOURCE LINES 44-45 Demonstrate how to toggle the display of different elements: .. GENERATED FROM PYTHON SOURCE LINES 45-73 .. code-block:: Python fig, axs = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True) axs[0, 0].bxp(stats) axs[0, 0].set_title('Default', fontsize=fs) axs[0, 1].bxp(stats, showmeans=True) axs[0, 1].set_title('showmeans=True', fontsize=fs) axs[0, 2].bxp(stats, showmeans=True, meanline=True) axs[0, 2].set_title('showmeans=True,\nmeanline=True', fontsize=fs) axs[1, 0].bxp(stats, 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].bxp(stats, shownotches=True) axs[1, 1].set_title('notch=True', fontsize=fs) axs[1, 2].bxp(stats, 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_bxp_001.png :alt: Default, showmeans=True, showmeans=True, meanline=True, Tufte Style (showbox=False, showcaps=False), notch=True, showfliers=False :srcset: /gallery/statistics/images/sphx_glr_bxp_001.png, /gallery/statistics/images/sphx_glr_bxp_001_2_00x.png 2.00x :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 74-75 Demonstrate how to customize the display different elements: .. GENERATED FROM PYTHON SOURCE LINES 75-107 .. code-block:: Python boxprops = dict(linestyle='--', linewidth=3, color='darkgoldenrod') flierprops = dict(marker='o', markerfacecolor='green', markersize=12, linestyle='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=2, figsize=(6, 6), sharey=True) axs[0, 0].bxp(stats, boxprops=boxprops) axs[0, 0].set_title('Custom boxprops', fontsize=fs) axs[0, 1].bxp(stats, flierprops=flierprops, medianprops=medianprops) axs[0, 1].set_title('Custom medianprops\nand flierprops', fontsize=fs) axs[1, 0].bxp(stats, meanprops=meanpointprops, meanline=False, showmeans=True) axs[1, 0].set_title('Custom mean\nas point', fontsize=fs) axs[1, 1].bxp(stats, meanprops=meanlineprops, meanline=True, showmeans=True) axs[1, 1].set_title('Custom mean\nas line', 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_bxp_002.png :alt: I never said they'd be pretty, Custom boxprops, Custom medianprops and flierprops, Custom mean as point, Custom mean as line :srcset: /gallery/statistics/images/sphx_glr_bxp_002.png, /gallery/statistics/images/sphx_glr_bxp_002_2_00x.png 2.00x :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 108-115 .. admonition:: References The use of the following functions, methods, classes and modules is shown in this example: - `matplotlib.axes.Axes.bxp` - `matplotlib.cbook.boxplot_stats` .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 2.426 seconds) .. _sphx_glr_download_gallery_statistics_bxp.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: bxp.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: bxp.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_