#!/usr/bin/env python # coding: utf-8 # # Matplotlib styles examples # # The matplotlib documentation is pretty incomplete, and all you really want to know about its style sheets is what they look like - but they're not shown in an easily comparable way. So here they are! # In[49]: get_ipython().run_line_magic('matplotlib', 'inline') from matplotlib import pyplot as plt import numpy as np sorted(plt.style.available) # ## And what do they look like? # # To globally change the style, use `plt.style.use()`. Here, we're going to temporarily switch between them using the context manager form: `with plt.style.context(())`. But first let's set up the plots we want to show. # In[50]: def make_title(s): return s.replace('-', ' ').replace('_', ' ').title() def make_plots(style_str=None): fig, axes_array = plt.subplots(2, 2) ((ax1, ax2), (ax3, ax4)) = axes_array # sine and cosine line plots x = np.arange(10) y_sin = np.sin(x) y_cos = np.cos(x) ax1.plot(x, y_sin) ax1.plot(x, y_cos) ax1.set_title('sine and cosine line plots') # a random scatter plot points1 = np.random.rand(20,2) points2 = np.random.rand(20,2) ax2.scatter(points1[:, 0], points1[:, 1]) ax2.scatter(points2[:, 0], points1[:, 1]) ax2.set_title('a random scatter plot') # a random bar graph width = 0.4 middles = np.arange(1, 6) heights1 = np.random.rand(5) heights2 = np.random.rand(5) ax3.bar(middles - width, heights1, width) ax3.bar(middles, heights2, width) ax3.set_title('a random bar graph') # a random pie chart values = np.random.rand(5) frac_values = values/values.sum() labels = ['A', 'B', 'C', 'D', 'E'] ax4.pie(frac_values, labels=labels) ax4.set_title('a random pie chart') # draw them! fig.suptitle('{} ({})'.format(make_title(style_str), style_str) if style_str else 'Default Settings', fontsize=20) fig.subplots_adjust(hspace=0.3) fig.set_size_inches(10, 10) plt.show() # ## Things you'll note # # - Pie charts don't play nice with style sheet colours # - Seaborn styles are generally quite nice (note: your matplotlib starts using a seaborn style if you simply `import seaborn`!) # - Matlab-like styles make horrible graphs for horrible people # - None of these plots are really ready for presenting without more tinkering! # ### Default settings # In[51]: make_plots() # ### Seaborn Darkgrid (`'seaborn-darkgrid'`) # In[52]: with plt.style.context(('seaborn-darkgrid')): make_plots('seaborn-darkgrid') # ### Seaborn Whitegrid (`'seaborn-whitegrid'`) # In[53]: with plt.style.context(('seaborn-whitegrid')): make_plots('seaborn-whitegrid') # ### Seaborn Dark Palette (`'seaborn-dark-palette'`) # In[54]: with plt.style.context(('seaborn-dark-palette')): make_plots('seaborn-dark-palette') # ### Seaborn Paper (`'seaborn-paper'`) # In[55]: with plt.style.context(('seaborn-paper')): make_plots('seaborn-paper') # ### Seaborn Talk (`'seaborn-talk'`) # In[56]: with plt.style.context(('seaborn-talk')): make_plots('seaborn-talk') # ### Seaborn Dark (`'seaborn-dark'`) # In[57]: with plt.style.context(('seaborn-dark')): make_plots('seaborn-dark') # ### Seaborn Bright (`'seaborn-bright'`) # In[58]: with plt.style.context(('seaborn-bright')): make_plots('seaborn-bright') # ### Ggplot (`'ggplot'`) # In[59]: with plt.style.context(('ggplot')): make_plots('ggplot') # ### Grayscale (`'grayscale'`) # In[60]: with plt.style.context(('grayscale')): make_plots('grayscale') # ### Seaborn Pastel (`'seaborn-pastel'`) # In[61]: with plt.style.context(('seaborn-pastel')): make_plots('seaborn-pastel') # ### Bmh (`'bmh'`) # In[62]: with plt.style.context(('bmh')): make_plots('bmh') # ### Seaborn Colorblind (`'seaborn-colorblind'`) # In[63]: with plt.style.context(('seaborn-colorblind')): make_plots('seaborn-colorblind') # ### Seaborn Ticks (`'seaborn-ticks'`) # In[64]: with plt.style.context(('seaborn-ticks')): make_plots('seaborn-ticks') # ### Fivethirtyeight (`'fivethirtyeight'`) # In[65]: with plt.style.context(('fivethirtyeight')): make_plots('fivethirtyeight') # ### Dark Background (`'dark_background'`) # In[66]: with plt.style.context(('dark_background')): make_plots('dark_background') # ### Seaborn White (`'seaborn-white'`) # In[67]: with plt.style.context(('seaborn-white')): make_plots('seaborn-white') # ### Classic (`'classic'`) # In[68]: with plt.style.context(('classic')): make_plots('classic') # ### Seaborn Notebook (`'seaborn-notebook'`) # In[69]: with plt.style.context(('seaborn-notebook')): make_plots('seaborn-notebook') # ### Seaborn Muted (`'seaborn-muted'`) # In[70]: with plt.style.context(('seaborn-muted')): make_plots('seaborn-muted') # ### Seaborn Deep (`'seaborn-deep'`) # In[71]: with plt.style.context(('seaborn-deep')): make_plots('seaborn-deep') # ### Seaborn Poster (`'seaborn-poster'`) # In[72]: with plt.style.context(('seaborn-poster')): make_plots('seaborn-poster')