import matplotlib.pyplot as plt
import numpy as np
n = 16
im = np.eye(n)
fig = plt.figure()
ax = fig.add_subplot(121)
ax.imshow(im)
ax = fig.add_subplot(122)
ax.imshow(im, extent=(0, n, 0, n))
plt.show()
結果imshowのエクステント引数がイメージを反転させるのはなぜですか?次の図 で
私はこのextent
で、両方の数字は(ほとんど)同じですが、そうでないことを期待しているでしょう:y軸が反転しているかに注意してください。もっと厄介なのは、右の数字が間違っているということです。原点の値は0であるのに対し、原点の値は1です。
エクステントのy引数を反転すると、extent=(0, n, n, 0)
が予想されるようになります。
、imshow
のextent
引数の説明、
程度:スカラー(左、右、下、上)、オプション、デフォルト:
None
位置左下および右上のコーナーの、データ座標内にある。
None
の場合、ピクセル中心がゼロベースの(行、列)インデックスになるようにイメージが配置されます。
は、実際にその動作については明示的ではありません。
私の質問は、このフリップが起こるのはなぜですか、なぜ期待される振る舞いを得るためにトップ/ボトムを逆転しなければならないのでしょうか?
私はthis questionを読んだ
EDITは、OPは、反転の問題を言及していないと答えは、どちらかの問題をもたらすものではありません。
設定するとorigin='lower'
要素は最初の画像ピクセルを(0,0)
に持っていますが、画像は逆さまに表示されます。
これらの動作を一貫して説明するには簡単な説明がありますが、それをまだピン止めすることはできません。
画像が左から右、上から下に描画されている可能性があります。だから、「トップ= n」と「ボトム= 0」は「ボトムアップ」です。 –