Chciałbym utworzyć nakładkę na kilka wykresów sześciokątnych, ale z wbudowanymi mapami kolorów widoczna jest tylko ostatnia. Nie chcę budować colormap de novo. Jak dodać linearną alfa do colormapy bez uprzedniego poznania wewnętrznej struktury mapy kolorów?Dodaj alfa do istniejącej macierzy kolorów matplotlib
11
A
Odpowiedz
17
Nie jestem do końca pewien, czy to zakwalifikuje się w "niewiedzy o wewnętrznej strukturze mapy kolorów", ale może coś w tym stylu działałoby, aby dodać liniową alfę do istniejącej mapy kolorów?
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()
nie sprawdzałem tego jeszcze, ale wygląda zupełnie „legalne”, więc ja przyjmuję. Dzięki. –