私は、ループごとにシャッフルするゼロ、1、および2の2次元numpy配列(enviro_gridという名前)を持っています。変化するカラーマップのアニメーションをアニメーション化して、すべてのエージェントが私が期待する動作に従っていることを視覚的に検証/実証することができます。Python:2D numpy配列を変更するカラーマップをアニメーション化する
コードのスケルトン概要:
import numpy as np
import random
import pylab as plt
#...initialize values, setup, seed grid with 0's, 1's, 2's, etc...
for t_weeks in range(time_limit):
for j in range(player_n):
#...Here lie a bunch of for/if loops which shuffle values around via rules...
#...culminating in grid/array updates via the following line...
#...which is seen a few times per iteration as the P[:,j]'s change.
#...Note that P[6, j] and P[7, j] are just x, y array locations for each agent...
#...while P[0, j] is just a designation of 1 or 2
enviro_grid[int(P[6, j]), int(P[7, j])] = int(P[0, j])
#...Then I have this, which I don't really understand so much as...
#... just copy/pasted from somewhere
im = plt.imshow(enviro_grid, cmap = 'hot')
plt.colorbar(im, orientation='horizontal')
plt.show()
私はすでに、助けのためのいくつかのリンクを見てきました。例えば、これらの
How to animate the colorbar in matplotlib
Colormap issue using animation in matplotlib
http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/
私はあまりにも私のリーグの再外です:Pythonは、私が見ているもののはるかに少ないテーラーの半分を理解すること私自身のコードに私がおそらく有用である必要があるような非常に基本的なヘルプを説明するのを助けるために、私が過去に行ったプロットはplot(x、y、options)の形式であり、ループ反復中のプロットの自然な副産物です。このfig.methodとplt.methodのすべては、最終的なplt.show()で最高潮に達し、私を混乱させ、怒らせます。上記のすべての例でdef()関数を使用すると、私自身の文脈に移行する限り、私の明快さがさらに悪化します。
私のコードに基づいてこれを実現するソリューションを提供してもらえますか?私は必要に応じて詳細を提供することができますが、この短いスタックオーバーフローの設定を維持しようとしています。
ありがとうございました。
(以前のコメントをまとめて削除しました。また、私はあなたの助けに感謝の言葉を削除したことに気付きましたので、もう一度言いましょう:ありがとうございます!) I私はちょうどイメージにリンクすることができることを認識しました。ですから、わかりやすくするために、私はforループの時間をforループ/時間ループの最後に入れていますが、それは "働いています"が、これを実行します: http://i.imgur.com/tFNGPDD.png このエラーメッセージまたは警告メッセージも表示します:MatplotlibDeprecationWarning:このGUI固有の関数がwarnings.warn(str、mplDeprecation)に実装されるまで、デフォルトイベントループを使用します。 –
イメージとカラーバーを複数回作成しているようです。おそらくフレームごとに1回です。私が掲示したコードスニペットでは、 'imshow'コマンドと' colorbar'コマンドは最初のフレームに対してのみ実行され、後続のすべてのフレームについては既に存在するプロットのデータが更新されています。なぜあなたのケースでは、それらの文がすべてのフレームに対して実行されるのか分かりません。ある時点で 'im'変数を' None'または '0'に設定する可能性はありますか?また、私はバックエンドに依存しているかもしれないので、この警告は出ませんが、無視するのはおそらく安全です。 – user8153
おっと!うん、それは、私はあなたのforループを自分で置き換えたとき、私は間違いなくその前にではなく、その中にim = noneを入れました。それを修正し、それは正常に動作します。 もう一度、ありがとうございます。私はすぐにそれか何かのgifを投稿することを願っています。オレンジ色のものを追いかけて食べる小さな白い点を見るのはクールだ。次のステップでは、私の恐ろしい、醜い、面白味のないコードを最適化しています... –