44

を使用しているときに、カラー マップに一貫して問題がありましたimshow。一部の色が黒くなっているようです。imshowデフォルトでは、私が与える浮動小数点値の行列を正規化しているように見えることに最終的に気付きました。

これらの絶対値に対応するマップから適切な色を表示するような配列を期待して[[0,0.25],[0.5,0.75]]いましたが、0.75 は 1 として解釈されます。極端な場合、0.2 の N x N 配列 (たとえば) は、カラー マップで 0.2 が対応すると予想されるもの (おそらく 20% グレー) ではなく、1 つの大きな黒い正方形を生成するだけです。

この動作を防ぐ方法はありますか? カスタム カラー マップに多くの不連続性がある場合は特に厄介です。スケールを少し変更すると、すべての色が完全に変更される可能性があります。

4

1 に答える 1

75

を指定するだけ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()

ここに画像の説明を入力

于 2014-03-02T01:26:20.447 に答える