I have Matrix of shape (100,100) which I'm visualising as an image but I'd like the values closest to zero to display increasingly transparent (alpha = 255). How can I acheieve this?
Current code:
plt.figure(figsize=(12, 12))
plt.imshow(pricesM15, interpolation='bicubic')
plt.colorbar()
Edit: I have tried one of the solutions listed below. The alpha gets applied to the low range and not around zero.
import numpy as np
import matplotlib.pylab as pl
from matplotlib.colors import ListedColormap
# Random data
data1 = difference
# Choose colormap
cmap = pl.cm.RdBu
# Get the colormap colors
my_cmap = cmap(np.arange(cmap.N))
# Set alpha
my_cmap[:,-1] = np.linspace(0, 1, cmap.N)
# Create new colormap
my_cmap = ListedColormap(my_cmap)
pl.figure(figsize=(16, 7))
pl.subplot(121)
pl.pcolormesh(data1, cmap=pl.cm.RdBu)
pl.colorbar()
pl.subplot(122)
pl.pcolormesh(data1, cmap=my_cmap)
pl.colorbar()
save_fig("two_plots")