輝度(N x M x 1配列)をrgb配列(N x M x 3)に変換しようとしています。
アイデアは、rgb配列を使用してのrgba配列を取得することですimshow()
。私が探している結果は、ルミナンス配列をにフィードするだけで得られる結果と同じですがimshow()
、アルファを制御できます。これを行うための簡単な関数はありますか?
輝度(N x M x 1配列)をrgb配列(N x M x 3)に変換しようとしています。
アイデアは、rgb配列を使用してのrgba配列を取得することですimshow()
。私が探している結果は、ルミナンス配列をにフィードするだけで得られる結果と同じですがimshow()
、アルファを制御できます。これを行うための簡単な関数はありますか?
必要なものを達成するために matplotlib で使用できる便利なものがいくつかあります。
数値のコレクションを簡単に取得し、適切な正規化とカラーマップを指定して、それらを rgba 値に変換できます。
import matplotlib.pyplot as plt
# define a norm which scales data from the range 20-30 to 0-1
norm = plt.normalize(vmin=20, vmax=30)
cmap = plt.get_cmap('hot')
これらを使用すると、いくつかの便利なことを実行できます。
>>> # put data in the range 0-1
>>> norm([20, 25, 30])
masked_array(data = [ 0. 0.5 1. ],
mask = False,
fill_value = 1e+20)
# turn numbers in the range 0-1 into colours defined in the cmap
>>> cmap([0, 0.5, 1])
array([[ 0.0416 , 0. , 0. , 1. ],
[ 1. , 0.3593141, 0. , 1. ],
[ 1. , 1. , 1. , 1. ]])
これはあなたが意図したことですか、それとも何か他のことをしようとしていましたか?