web-dev-qa-db-fra.com

Ajouter de l'alpha à une palette de couleurs matplotlib existante

Je voudrais faire une superposition de plusieurs tracés hexbin, mais avec les cartes de couleurs intégrées, seule la dernière est visible. Je ne veux pas construire une carte de couleurs de novo. Comment ajouter de l'alpha linéaire à la palette de couleurs sans connaître au préalable la structure interne de la palette de couleurs?

23
Hennadii Madan

Je ne suis pas tout à fait sûr que cela se qualifie dans "ne pas connaître la structure interne de la palette de couleurs", mais peut-être que quelque chose comme ça fonctionnerait pour ajouter un alpha linéaire à une palette de couleurs existante?

import numpy as np
import matplotlib.pylab as pl
from matplotlib.colors import ListedColormap

# Random data
data1 = np.random.random((4,4))

# 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()
pl.subplot(121)
pl.pcolormesh(data1, cmap=pl.cm.RdBu)
pl.colorbar()

pl.subplot(122)
pl.pcolormesh(data1, cmap=my_cmap)
pl.colorbar()

enter image description here

43
Bart