You can also use plt.set_cmap, see here or (more elaborately, scroll down) here:
import numpy as np
import matplotlib.pyplot as plt
plt.imshow(np.random.random((10,10)), cmap='magma')
plt.colorbar()
plt.set_cmap('viridis')
Answer from S.A. on Stack OverflowYou can also use plt.set_cmap, see here or (more elaborately, scroll down) here:
import numpy as np
import matplotlib.pyplot as plt
plt.imshow(np.random.random((10,10)), cmap='magma')
plt.colorbar()
plt.set_cmap('viridis')
Use the update_colors() to update the colors of all lines:
import pylab as pl
import numpy as np
cm = pl.get_cmap('OrRd')
x = np.linspace(0, 1, 100)
def update_colors(ax):
lines = ax.lines
colors = cm(np.linspace(0, 1, len(lines)))
for line, c in zip(lines, colors):
line.set_color(c)
fig, ax = pl.subplots()
for i in range(10):
ax.plot(x, x**(1+i*0.1))
update_colors(ax)
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
You can do either,
plt.set_cmap('jet')
or
plt.rcParams['image.cmap']='jet'
However note that if you are passing value for color parameter in any of the APIs then this default will be ignored. In that case you should do something like this:
color = plt.cm.hsv(r) # r is 0 to 1 inclusive
line = matplotlib.lines.Line2D(xdata, ydata, color=color)