2016-05-19 4 views
11

Я бы хотел сделать наложение нескольких гексбинских графиков, но с встроенными цветовыми картами видна только последняя. Я не хочу создавать colormap de novo. Как можно добавить линейную альфа в цветовой код, не зная внутренней структуры цветовой карты заранее?Добавить альфу в существующий matplotlib colormap

ответ

17

Я не совсем уверен, соответствует ли это требованиям «не зная внутренней структуры цветовой карты», но, возможно, что-то подобное могло бы добавить линейную альфу к существующей цветовой карте?

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

Я не проверял это, но выглядит вполне «законным», поэтому я принимаю. Благодарю. –

Смежные вопросы