In [3]:
import mpl_styles
from matplotlib import pyplot as plt
import numpy as np
%pylab inline
Populating the interactive namespace from numpy and matplotlib
In [4]:
# We define some x and y values
x1 = range(10)
x2 = np.random.rand(100)
y1 = np.random.randn(10)
y2 = np.random.rand(100)

mpl_styles provide some decorators to decorate your matplotlib plots. Some styles are included, 'gg', 'gg2', 'probpro', 'pybo', 'r'.

'gg', 'probpro' and 'r' are adapted from matplotlibrc demo files developed by Ryan Dale.

'gg2' is adapted from matplotlibrc developed by Huy Nguyen.

'pybo' uses the pybonacci logo colors.

It is very easy to include your own style. Just define your rc params in a dictionary and include them in a new decorator. Then make a 'Pull Request' to this repo. It would be nice to see a gallery of beatiful styles here.

Otherwise, if you don't want to share your beatiful matplotlib configuration you can use your own styles using my_style decorator which accepts a dictionary with your rc params.

To use a style you just have to create your function with your plot and decorate the function with the decorator you want to use. See some dummy examples below:

The 'gg' style:

In [5]:
@mpl_styles.gg_style
def ggplot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [6]:
ggplot()

The 'gg2' style

In [18]:
@mpl_styles.gg2_style
def gg2plot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [19]:
gg2plot()

The 'probpro' style

In [20]:
@mpl_styles.probpro_style
def ppplot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [21]:
ppplot()

The 'pybo' style

In [22]:
@mpl_styles.pybo_style
def pyboplot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [23]:
pyboplot()

The 'r' style

In [24]:
@mpl_styles.r_style
def rplot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [25]:
rplot()

Your own style using a dictionary of rc params as an argument for the decorator

In [26]:
params = {'lines.linewidth':5, 'axes.facecolor': '999999'}
@mpl_styles.my_style(params)
def myplot():
    plt.subplot(2,2,1)
    plt.plot(x1,y1)
    plt.plot(x1,y1-1)
    plt.plot(x1,y1-2)
    plt.plot(x1,y1-3)
    plt.plot(x1,y1-4)
    plt.subplot(2,2,2)
    plt.scatter(x2, y2)
    plt.subplot(2,2,3)
    plt.bar(x1, y1)
In [27]:
myplot()

A plot using the default style of the IPython notebook

In [28]:
plt.plot(x1, y1)
Out[28]:
[<matplotlib.lines.Line2D at 0x7fec083c3310>]