2

配列にデータを入力して、画像のように表示したい。各配列要素に「色の値」と「透明度の値」の 2 つのパラメーターを設定したいと考えています。私はmatplotlibのimshowを使用していますが、他のソリューションも受け入れています。ca_map が MxN 配列である、このようなものを試してみました。

ca_map = np.array(ca_map)

palette = cm.jet
palette.set_under('w', 1.0)

plt.axis('off')
plt.imshow(ca_map, cmap=palette, norm=colors.Normalize(vmin=0, clip=False), interpolation='sinc')
plt.show()

前もって感謝します。

4

2 に答える 2

2

ドキュメント ( http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.imshow ) には、RGBA 値の MxNx4 配列を imshow に渡すことができると書かれています。したがって、ca_map が MxNx3 であると仮定すると、次のようにすることができます。

plt.imshow(np.dstack([ca_map, alpha], ...)

または、ca_map が MxN の場合:

plt.imshow(np.dstack([ca_map, ca_map, ca_map, alpha], ...)
于 2012-07-12T02:33:24.117 に答える
1

ルークの答えはMxNx3には適していますが、MxNの場合、彼の解決策は画像のグレーの色合い(RGB値が等しい)を提供します。画像に任意の種類の色が必要な場合は、次が役立つ場合があります。

import matplotlib.pyplot as plt
import numpy

data = numpy.arange(12.).reshape(3, 4)

import matplotlib.colors
norm = matplotlib.colors.Normalize(data.min(), data.max())


img_array = plt.get_cmap('jet')(norm(data))
print img_array.shape
img_array[..., 3] = 1 - (norm(data)/2)  # <- some alpha values between 0.5-1

plt.imshow(img_array)
plt.show()
于 2012-07-13T12:57:21.000 に答える