前提・実現したいこと
プログラミング初心者です。
おそらく基本的なmatplotlibについての質問です。
jupyter notebook上で反応拡散方程式のプログラムを書いており、plt.pcolormeshで二次元でアニメーションの拡散の様子を表現しようと思ったのですが、その際に色の基準が1フレームごとに変わるのを防ぎたいです。
plt.pcolormeshにnorm=Normalize(vmin=min(u), vmax=max(u)を引数として加えるとエラーメッセエージは出ないものの、グラフが表示されずに白紙だけが表示されてしまいます。
あとカラーバーも同時に表示させたいのですが、アニメーションでカラーバーが増えて表示されたりして全然うまくいきません。
該当のソースコード
X, Y = np.meshgrid(x, y) fig1 = plt.figure(figsize = (7,7)) def up(frame): plt.cla() ax1 = fig1.add_subplot(111) ax1.set_xlabel("x", size = 16, color = "b") ax1.set_ylabel("y", size = 16, color = "b") plt.pcolormesh(X, Y, u[:,:,frame], cmap='coolwarm', norm=Normalize(vmin=min(u), vmax=max(u))) #問題の箇所 plt.grid() plt.show() ani = animation.FuncAnimation(fig1, up, frames = range(0,ttotal_steps), interval=20)
ソースコードについて
長すぎるのでグラフを描写する部分だけ載せています。
normの引数を設定していない時は、一応アニメーションは表示されていますが、カラーマップの基準がおそらく1フレームごとに変化していて意味のないグラフになっています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/18 13:31