Customizing plots with style sheets — Matplotlib 1.5.3 documentation (original) (raw)

The style package adds support for easy-to-switch plotting “styles” with the same parameters as a matplotlibrc file.

There are a number of pre-defined styles provided by matplotlib. For example, there’s a pre-defined style called “ggplot”, which emulates the aesthetics of ggplot (a popular plotting package for R). To use this style, just add:

import matplotlib.pyplot as plt plt.style.use('ggplot')

To list all available styles, use:

print(plt.style.available)

Defining your own style

You can create custom styles and use them by calling style.use with the path or URL to the style sheet. Alternatively, if you add your <style-name>.mplstylefile to mpl_configdir/stylelib, you can reuse your custom style sheet with a call tostyle.use(<style-name>). By default mpl_configdir should be ~/.config/matplotlib, but you can check where yours is with matplotlib.get_configdir(), you may need to create this directory. Note that a custom style sheet in mpl_configdir/stylelibwill override a style sheet defined by matplotlib if the styles have the same name.

For example, you might want to creatempl_configdir/stylelib/presentation.mplstyle with the following:

axes.titlesize : 24 axes.labelsize : 20 lines.linewidth : 3 lines.markersize : 10 xtick.labelsize : 16 ytick.labelsize : 16

Then, when you want to adapt a plot designed for a paper to one that looks good in a presentation, you can just add:

import matplotlib.pyplot as plt plt.style.use('presentation')

Composing styles

Style sheets are designed to be composed together. So you can have a style sheet that customizes colors and a separate style sheet that alters element sizes for presentations. These styles can easily be combined by passing a list of styles:

import matplotlib.pyplot as plt plt.style.use(['dark_background', 'presentation'])

Note that styles further to the right will overwrite values that are already defined by styles on the left.

Temporary styling

If you only want to use a style for a specific block of code but don’t want to change the global styling, the style package provides a context manager for limiting your changes to a specific scope. To isolate the your styling changes, you can write something like the following:

import numpy as np import matplotlib.pyplot as plt

with plt.style.context(('dark_background')): plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o')

Some plotting code with the default style

plt.show()