4

ループを使用して、ベースマップ上にベクトル フィールドを生成しています。

for i in range(365):
     barbs = m.quiver(x, y, u[i, :], v[i, :], scale = 100)
     plt.draw()
     barbs.remove()

プログラムは、ループごとに大幅に多くのメモリを消費します。これを回避する方法はありますか?各ループの最後にバーブを完全に削除するなど?

4

1 に答える 1

4

(u,v) コンポーネントのみをリセットする必要がある場合はbarb.set_UVC(newU,newV,newC)、ループ内で使用できます。

barbs = m.quiver(x, y, u[0, :], v[0, :], scale = 100)
for i in range(365):
     barbs.set_UVC(u[i,:],v[i,:])
     #save the figure or something

Python: copy basemap or remove data from figure3D-numpy-array frame by frameも参照してください。

アニメーションを作成しようとしている場合はanimation、matplotlib のモジュールを参照してください。多くの詳細が処理されます。

于 2012-08-29T04:10:28.697 に答える