You can create your own using LinearSegmentedColormap. I like to set the red and green channels to something less than 1.0 at the upper and lower limits, so the colors are not too bright (here I used 0.8). Adjust it to your taste.
See the custom_cmap example on the matplotlib website for more details.
Here is a working example:
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import numpy as np
cdict = {'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.8, 0.8)),
'green': ((0.0, 0.8, 0.8),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 0.0, 0.0))
}
GnRd = colors.LinearSegmentedColormap('GnRd', cdict)
fig,ax = plt.subplots(1)
dummydata = np.random.rand(5,5)*6.-3.
p=ax.pcolormesh(dummydata,cmap=GnRd,vmin=-3,vmax=3)
fig.colorbar(p,ax=ax)
plt.show()

source
share