私は3D配列を持ちます。最初の2つの次元は空間的なので、(x、y)と言います。 3次元には、ポイント固有の情報が含まれています。イメージデータの形状が変更された場合、imshowで正しい限界値を設定する
print H.shape # --> (200, 480, 640) spatial extents (200,480)
次に、第三の次元にある面を選択することにより、私は(x、y)を切り替えるように、私は、今キューブを回転する
imdat = H[:,:,100] # shape (200, 480)
img = ax.imshow(imdat, cmap='jet',vmin=imdat.min(),vmax=imdat.max(), animated=True, aspect='equal')
で画像を表示することができます〜(y、x)となる。
今、私が呼ぶときH = np.rot90(H) # could also use H.swapaxes(0,1) or H.transpose((1,0,2))
print H.shape # --> (480, 200, 640)
:
imdat = H[:,:,100] # shape (480,200)
img.set_data(imdat)
ax.relim()
ax.autoscale_view(tight=True)
私は奇妙な動作を得ます。行に沿った画像は、200行目までのデータを表示し、y軸(480)の終わりまで黒色になります。 x軸は0から200まで伸び、回転したデータを示します。今度は、90度別の回転、画像が正しく表示されます(ちょうど180度回転しただけです)
データを回転した後、軸の限界(または画像のエクステント?正しくリフレッシュ。誰かが助けることができますか?
PS:悪いハッキングで嫌がらせをするために、各回転の後に新しい画像(ax.imshowを呼び出すことによって)を再生成しようとしましたが、私はまだ同じ動作をします。
コンテキストを提供できますか?新しい画像を別の図にプロットすることをお勧めします。それが望ましくない場合は、その理由を明記してください。 –
私は困惑しています。私は 'set_extlim'を各呼び出しの後に明示的に使用する必要があると仮定しました。これは' set_xlim'、 'set_ylim'を呼び出す必要がありますが、これを行うと希望の動作を得ることができません。 – Yann