1

フロートのn個の行列(np.array)があり、imshowを使用してそれらを一緒にプロットしたいのですが、それぞれの値の色の範囲が異なります。例:n =白->青、n + 1 =白->赤など。これを行う方法はありますか?

マトリックスは同じサイズであり、マトリックスの値の大部分が0であるため(白になることを願っています)、互いの色付けはそれほど問題にはなりません。

私は次のようなことを考えていました:

1番目のマトリックス

000
010
000

2番目のマトリックス

000
000
001

したがって、2番目の行列を次のように変換できると思いました。

222
222
223

次に、0-> 1を白から青に、2->3を白から赤にします。

残念ながら、matplotlibカラーマップを使用してこれを行う方法がわかりません。

4

1 に答える 1

6

imshowに設定されている値はプロットされませんNone。データが十分にまばらな場合は、それらを互いに重ねることができます。

import numpy as np
import pylab as plt

# Your example data
A1 = np.zeros((3,3))
A2 = np.zeros((3,3))
A1[1,1] = 1
A2[2,2] = 1

# Apply a mask to filter out unused values
A1[A1==0] = None
A2[A2==0] = None

# Use different colormaps for each layer
pwargs = {'interpolation':'nearest'}
plt.imshow(A1,cmap=plt.cm.jet,**pwargs)
plt.imshow(A2,cmap=plt.cm.hsv,**pwargs)
plt.show()

ここに画像の説明を入力

于 2012-05-29T13:53:04.957 に答える