.. only:: html .. 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_style_sheets_style_sheets_reference.py: ====================== Style sheets reference ====================== This script demonstrates the different available style sheets on a common set of example plots: scatter plot, image, bar graph, patches, line plot and histogram, .. rst-class:: sphx-glr-horizontal * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_001.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_002.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_003.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_004.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_005.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_006.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_007.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_008.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_009.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_010.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_011.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_012.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_013.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_014.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_015.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_016.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_017.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_018.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_019.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_020.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_021.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_022.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_023.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_024.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_025.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_026.png :class: sphx-glr-multi-img * .. image:: /gallery/style_sheets/images/sphx_glr_style_sheets_reference_027.png :class: sphx-glr-multi-img .. code-block:: default import numpy as np import matplotlib.pyplot as plt # Fixing random state for reproducibility np.random.seed(19680801) def plot_scatter(ax, prng, nb_samples=100): """Scatter plot. """ for mu, sigma, marker in [(-.5, 0.75, 'o'), (0.75, 1., 's')]: x, y = prng.normal(loc=mu, scale=sigma, size=(2, nb_samples)) ax.plot(x, y, ls='none', marker=marker) ax.set_xlabel('X-label') ax.set_title('Axes title') return ax def plot_colored_sinusoidal_lines(ax): """Plot sinusoidal lines with colors following the style color cycle. """ L = 2 * np.pi x = np.linspace(0, L) nb_colors = len(plt.rcParams['axes.prop_cycle']) shift = np.linspace(0, L, nb_colors, endpoint=False) for s in shift: ax.plot(x, np.sin(x + s), '-') ax.set_xlim([x[0], x[-1]]) return ax def plot_bar_graphs(ax, prng, min_value=5, max_value=25, nb_samples=5): """Plot two bar graphs side by side, with letters as x-tick labels. """ x = np.arange(nb_samples) ya, yb = prng.randint(min_value, max_value, size=(2, nb_samples)) width = 0.25 ax.bar(x, ya, width) ax.bar(x + width, yb, width, color='C2') ax.set_xticks(x + width) ax.set_xticklabels(['a', 'b', 'c', 'd', 'e']) return ax def plot_colored_circles(ax, prng, nb_samples=15): """Plot circle patches. NB: draws a fixed amount of samples, rather than using the length of the color cycle, because different styles may have different numbers of colors. """ for sty_dict, j in zip(plt.rcParams['axes.prop_cycle'], range(nb_samples)): ax.add_patch(plt.Circle(prng.normal(scale=3, size=2), radius=1.0, color=sty_dict['color'])) # Force the limits to be the same across the styles (because different # styles may have different numbers of available colors). ax.set_xlim([-4, 8]) ax.set_ylim([-5, 6]) ax.set_aspect('equal', adjustable='box') # to plot circles as circles return ax def plot_image_and_patch(ax, prng, size=(20, 20)): """Plot an image with random values and superimpose a circular patch. """ values = prng.random_sample(size=size) ax.imshow(values, interpolation='none') c = plt.Circle((5, 5), radius=5, label='patch') ax.add_patch(c) # Remove ticks ax.set_xticks([]) ax.set_yticks([]) def plot_histograms(ax, prng, nb_samples=10000): """Plot 4 histograms and a text annotation. """ params = ((10, 10), (4, 12), (50, 12), (6, 55)) for a, b in params: values = prng.beta(a, b, size=nb_samples) ax.hist(values, histtype="stepfilled", bins=30, alpha=0.8, density=True) # Add a small annotation. ax.annotate('Annotation', xy=(0.25, 4.25), xytext=(0.9, 0.9), textcoords=ax.transAxes, va="top", ha="right", bbox=dict(boxstyle="round", alpha=0.2), arrowprops=dict( arrowstyle="->", connectionstyle="angle,angleA=-95,angleB=35,rad=10"), ) return ax def plot_figure(style_label=""): """Setup and plot the demonstration figure with a given style. """ # Use a dedicated RandomState instance to draw the same "random" values # across the different figures. prng = np.random.RandomState(96917002) # Tweak the figure size to be better suited for a row of numerous plots: # double the width and halve the height. NB: use relative changes because # some styles may have a figure size different from the default one. (fig_width, fig_height) = plt.rcParams['figure.figsize'] fig_size = [fig_width * 2, fig_height / 2] fig, axs = plt.subplots(ncols=6, nrows=1, num=style_label, figsize=fig_size, squeeze=True) axs[0].set_ylabel(style_label) plot_scatter(axs[0], prng) plot_image_and_patch(axs[1], prng) plot_bar_graphs(axs[2], prng) plot_colored_circles(axs[3], prng) plot_colored_sinusoidal_lines(axs[4]) plot_histograms(axs[5], prng) fig.tight_layout() return fig if __name__ == "__main__": # Setup a list of all available styles, in alphabetical order but # the `default` and `classic` ones, which will be forced resp. in # first and second position. style_list = ['default', 'classic'] + sorted( style for style in plt.style.available if style != 'classic') # Plot a demonstration figure for every available style sheet. for style_label in style_list: with plt.style.context(style_label): fig = plot_figure(style_label=style_label) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 7.333 seconds) .. _sphx_glr_download_gallery_style_sheets_style_sheets_reference.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: style_sheets_reference.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: style_sheets_reference.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_