imshow
を使用しているときに、カラーマップに一貫して問題があります。一部の色は黒に見えるようです。私はついに、imshow
がデフォルトで、私が与えた浮動小数点値の行列を正規化するように見えることに気付きました。
[[0,0.25],[0.5,0.75]]
などの配列は、それらの絶対値に対応するマップの適切な色を表示するはずですが、0.75は1として解釈されます。極端な場合、0.2のN x N配列たとえば、カラーマップで0.2に対応すると予想されるもの(おそらく20%グレー)ではなく、1つの大きな黒い正方形を生成します。
この振る舞いを防ぐ方法はありますか?カスタムカラーマップに多くの不連続性がある場合、特に目障りです。スケールのわずかな変更により、すべての色が完全に変更される可能性があります。
vmin=0, vmax=1
を指定するだけです。
デフォルトでは、imshow
はデータをその最小値と最大値に正規化します。これは、vmin
引数とvmax
引数、またはnorm
引数(非線形スケーリングが必要な場合)で制御できます。
簡単な例として:
import matplotlib.pyplot as plt
data = [[0, 0.25], [0.5, 0.75]]
fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.get_cmap('hot'), interpolation='nearest',
vmin=0, vmax=1)
fig.colorbar(im)
plt.show()