web-dev-qa-db-ja.com

既存のmatplotlibカラーマップにアルファを追加する

複数のhexbinプロットのオーバーレイを作成したいのですが、組み込みのカラーマップでは最後の1つしか表示されません。私はカラーマップをデノボで構築したくありません。事前にカラーマップの内部構造を知らなくても、どのように線形アルファをカラーマップに追加するのでしょうか。

23
Hennadii Madan

これが「カラーマップの内部構造を知らない」の範囲内であるかどうかはよくわかりませんが、おそらく、このようなものが既存のカラーマップに線形アルファを追加するのに役立ちますか?

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