2016-05-19 25 views
11

Mi piacerebbe creare una sovrapposizione di più grafici hexbin, ma con mappe colore incorporate solo l'ultima è visibile. Non voglio costruire una mappa dei colori. Come si potrebbe aggiungere alfa lineare alla mappa di colori senza conoscere prima la struttura interna della mappa di colori?Aggiungi alpha a una mappa colori matplotlib esistente

risposta

17

Non sono sicuro se questo si qualifichi all'interno di "non conoscere la struttura interna della mappa di colori", ma forse qualcosa del genere potrebbe funzionare per aggiungere un alpha lineare a una mappa colori esistente?

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

+0

Non ho controllato ancora, ma sembra completamente 'legittime' così accetto. Grazie. –