matplotlibのFuncAnimationを使ってPythonで等高線図をアニメーション化する方法
Pythonのmatplotlibでは、FuncAnimationクラスを利用することで、等高線図(コンタープロット)を簡単にアニメーション化できます。時間とともに変化するデータを視覚的に表現したい場合に非常に便利な手法です。
等高線図をアニメーション化する手順
- 10×10×8の形状を持つランダムなデータを作成します。
- subplots()メソッドを使って、図(Figure)とサブプロット(Axes)を作成します。
- FuncAnimation()クラスを使い、指定した関数*func*を繰り返し呼び出すことでアニメーションを生成します。
- フレームごとに等高線の値を更新できるよう、animateメソッドを定義し、FuncAnimation()クラスに渡します。
- 最後にshow()メソッドで図を表示します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
data = np.random.randn(800).reshape(10, 10, 8)
fig, ax = plt.subplots()
def animate(i):
ax.clear()
ax.contourf(data[:, :, i])
ani = animation.FuncAnimation(fig, animate, 5, interval=50, blit=False)
plt.show()
コードのポイント
- np.random.randn(800).reshape(10, 10, 8):800個の乱数を生成し、10×10×8の3次元配列へ変換しています。第3軸がアニメーションの各フレームに対応します。
- ax.clear():各フレームで前回の描画内容を消去し、新しい等高線図を描き直すために必要です。
- interval=50:フレーム間隔を50ミリ秒に設定しています。値を小さくするとアニメーションが速くなります。
- blit=False:全体を再描画する設定です。ax.clear()を使用する場合はblit=Trueでは正しく動作しないため、Falseを指定します。
実行結果
上記のコードを実行すると、フレームごとに形が変化していく等高線図のアニメーションが表示されます。

-
MatplotlibでPythonのプロットに度(°)記号を挿入する方法
Matplotlibで作成したグラフに度(°)記号を挿入したい場合、LaTeX表記を利用すると簡単に実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。 度記号を挿入する手順 numpyを使って、pV(圧力×体積)、nR、T(温度)のデータポイントを作成します。 plot()メソッドを使って、pVとTの関係をプロットします。 xlabel()メソッドで、x軸のラベル「Pressure x Volume」を設定します。 ylabel()メソッドで、LaTeX表記 $^\circ$ を含む温度ラベルをy軸に設定します。 show()メソッドを呼び出して、図を画面に表
-
Pythonで時系列データをプロットする方法をわかりやすく解説
Pythonのmatplotlibを使えば、時系列データ(日時を軸にしたデータ)を簡単にグラフ化できます。ここでは、datetimeオブジェクトを含むデータを折れ線グラフとして描画する基本的な手順を紹介します。 時系列プロットの基本手順 numpyを使用して、x軸(日時データ)とy軸(数値データ)を作成します。 plot()メソッドを使って、作成したx・yのデータをプロットします。 show()メソッドを実行して、図を画面に表示します。 コード例 以下のサンプルコードでは、2021年1月1日の0時から23時までの24個の日時データを生成し、それに対応するランダムな数値をy軸としてプロットし