.. note:: :class: sphx-glr-download-link-note Click :ref:`here ` 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 .. code-block:: python import numpy as np import matplotlib.pyplot as plt 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) 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 .. 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 Out: .. code-block:: none ['label', 'mean', 'iqr', 'cilo', 'cihi', 'whishi', 'whislo', 'fliers', 'q1', 'med', 'q3'] Demonstrate how to toggle the display of different elements: .. code-block:: python fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharey=True) axes[0, 0].bxp(stats) axes[0, 0].set_title('Default', fontsize=fs) axes[0, 1].bxp(stats, showmeans=True) axes[0, 1].set_title('showmeans=True', fontsize=fs) axes[0, 2].bxp(stats, showmeans=True, meanline=True) axes[0, 2].set_title('showmeans=True,\nmeanline=True', fontsize=fs) axes[1, 0].bxp(stats, showbox=False, showcaps=False) tufte_title = 'Tufte Style\n(showbox=False,\nshowcaps=False)' axes[1, 0].set_title(tufte_title, fontsize=fs) axes[1, 1].bxp(stats, shownotches=True) axes[1, 1].set_title('notch=True', fontsize=fs) axes[1, 2].bxp(stats, showfliers=False) axes[1, 2].set_title('showfliers=False', fontsize=fs) for ax in axes.flatten(): ax.set_yscale('log') ax.set_yticklabels([]) fig.subplots_adjust(hspace=0.4) plt.show() .. image:: /gallery/statistics/images/sphx_glr_bxp_001.png :class: sphx-glr-single-img Demonstrate how to customize the display different elements: .. 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, axes = plt.subplots(nrows=2, ncols=2, figsize=(6, 6), sharey=True) axes[0, 0].bxp(stats, boxprops=boxprops) axes[0, 0].set_title('Custom boxprops', fontsize=fs) axes[0, 1].bxp(stats, flierprops=flierprops, medianprops=medianprops) axes[0, 1].set_title('Custom medianprops\nand flierprops', fontsize=fs) axes[1, 0].bxp(stats, meanprops=meanpointprops, meanline=False, showmeans=True) axes[1, 0].set_title('Custom mean\nas point', fontsize=fs) axes[1, 1].bxp(stats, meanprops=meanlineprops, meanline=True, showmeans=True) axes[1, 1].set_title('Custom mean\nas line', fontsize=fs) for ax in axes.flatten(): 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:: /gallery/statistics/images/sphx_glr_bxp_002.png :class: sphx-glr-single-img .. _sphx_glr_download_gallery_statistics_bxp.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download :download:`Download Python source code: bxp.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: bxp.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_