Matplotlibを使用して3Dボリュームを描き、スライスごとにスライスしたいと思います。 マウススクロールでインデックスを変更します。私のプログラムは以下の通りです:Matplotlibの軸の画像を更新するには
図は主機能で初期化されています。 like:
fig, ax = plt.subplots()
ax.volume = volume # volume is a 3D data, a 3d np array.
ax.index = 1
ax.imshow(volume[ax.index])
fig.canvas.mpl_connect('scroll_event', mouse_scroll)
私はax.images
とは分かりませんが、すべてうまく機能しました。しかし、ax.volume
を新しいボリュームデータに置き換えると問題が発生しました。それは突然レンダリングを停止します!コードにデバッグすると、各イベントコールバックでax.image[0]
が正しく設定されます。
ただし、イメージのset_arrayメソッドをax.show()
に変更した場合。 Figureが再びレンダリングされ始めます。しかし、軸は関数ax.images[0].set_array()
と比較して実際に遅いです。
この問題を解決するにはどうすればよいですか?本当にset_array()
メソッドを使用したい。どうもありがとうございました。
単純な実行可能スクリプトが添付されています。 [email protected]
解決策を見つけるのに役立つように、人々が望ましくない行動を再現できるように[mcve]を提供することは常に理にかなっています。既存のオブジェクトのカスタム属性を作成することは一般的には良い考えではありませんが、この場合に問題が発生するかどうかはわかりません。 Appart、コードは正常に見えます。しかし、[mcve]がなければ、テストすることはできません。 – ImportanceOfBeingErnest
@ImportanceOfBeingErnest大変ありがとうございます。私は簡単な実行可能コードを添付しました。 –