How to set default colormap in Matplotlib

Jarno picture Jarno · Oct 17, 2015 · Viewed 47.2k times · Source

Especially when working with grayscale images it is tedious to set the color map for every imshow command as imshow(i, cmap='gray'). How can I set the default color map matplotlib uses to grayscale or any other colormap?

Answer

Jarno picture Jarno · Oct 17, 2015

To change the default colormap only for the current interactive session or one script use

import matplotlib as mpl
mpl.rc('image', cmap='gray')

For versions of matplotlib prior to 2.0 you have to use the rcParams dict. This still works in newer versions.

import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'

To change the default colormap permanently edit the matplotlibrc configuration file and add the line image.cmap: gray. Replace the value gray with any other valid colormap according to your needs. The config file should be at ~/.config/matplotlib/matplotlibrc, but you can find out the exact location with

mpl.matplotlib_fname()

This is especially useful if you have multiple matplotlib versions in different virtual environments.

See also http://txt.arboreus.com/2014/10/21/how-to-set-default-colormap-in-matplotlib.html and for general configuration of Matplotlib http://matplotlib.org/users/customizing.html