Customizing matplotlib's parameters in code
The Library we will use the most throughout this book is matplotlib; it provides the plotting capabilities. Default values for most properties are already set inside the configuration file for matplotlib, called.rc
file. This recipe describes how to modify matplotlib properties from our application code.
Getting ready
As we already said, matplotlib configuration is read from a configuration file. This file provides a place to set up permanent default values for certain matplotlib properties, well, for almost everything in matplotlib.
How to do it...
There are two ways to change parameters during code execution: using the dictionary of parameters (rcParams
) or calling the matplotlib.rc()
command. The former enables us to load already existing dictionary into rcParams
, while the latter enables a call to a function using tuple of keyword arguments.
If we want to restore the dynamically changed parameters, we can use matplotlib.rcdefaults()
call to restore the standard matplotlib settings.
The following two code samples illustrate previously explained behaviors:
Example for matplotlib.rcParams
:
import matplotlib as mp mpl.rcParams['lines.linewidth'] = 2 mpl.rcParams['lines.color'] = 'r'
Example for the matplotlib.rc()
call:
import matplotlib as mpl mpl.rc('lines', linewidth=2, color='r')
Both examples are semantically the same. In the second sample, we define that all subsequent plots will have lines with line width of 2 points. The last statement of the previous code defines that the color of every line following this statement will be red, unless we override it by local settings. See the following example:
import matplotlib.pyplot as plt import numpy as np t = np.arange(0.0, 1.0, 0.01) s = np.sin(2 * np.pi * t) # make line red plt.rcParams['lines.color'] = 'r' plt.plot(t,s) c = np.cos(2 * np.pi * t) # make line thick plt.rcParams['lines.linewidth'] = '3 plt.plot(t,c) plt.show()
How it works...
First, we import matplotlib.pyplot
and NumPy to allow us to draw sine and cosine graphs. Before plotting the first graph, we explicitly set line color to red using plt.rcParams['lines.color'] = 'r'
.
Next, we go to the second graph (cosine function), and explicitly set line width to 3 points using plt.rcParams['lines.linewidth'] = '3'
.
If we want to reset specific settings, we should call matplotlib.rcdefaults()
.