Matplotlibのanimation.FuncAnimation()に引数を渡してアニメーションを作成する方法
PythonのMatplotlibで等高線プロット(contour plot)のアニメーションを作成する際、animation.FuncAnimation()に引数を渡す方法を解説します。以下の手順に従うことで、簡単に実装できます。
- 10×10次元のランダムデータを作成します。
- subplots()メソッドを使用して、図とサブプロットのセットを生成します。
- FuncAnimation()クラスを使い、指定した関数funcを繰り返し呼び出すことでアニメーションを作成します。
- フレームごとに等高線の値を更新できるよう、FuncAnimation()クラスで利用可能なanimate()メソッドを定義します。
- 最後にshow()メソッドで図を表示します。
コード例
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 800個の乱数を10×10×8の3次元配列に変換
data = np.random.randn(800).reshape(10, 10, 8)
fig, ax = plt.subplots()
# フレームごとに等高線を更新する関数
def animate(i):
ax.clear()
ax.contourf(data[:, :, i])
# FuncAnimationにfig・animate・フレーム数5を引数として渡す
ani = animation.FuncAnimation(fig, animate, 5, interval=50, blit=False)
plt.show()
コードのポイント
FuncAnimation()の主な引数は以下の通りです。
- fig: アニメーションの対象となるFigureオブジェクト
- animate: 各フレームで呼び出される更新用の関数
- 5: フレーム数(ここではdataの第3軸のインデックス0〜4が順に渡されます)
- interval=50: フレーム間の間隔(ミリ秒)
- blit=False: 全体を再描画する設定。等高線プロットではblit=Trueがうまく機能しないためFalseを推奨
このように、追加の引数(この例ではフレーム番号i)は、FuncAnimation()が自動的に更新関数へ順番に渡してくれる仕組みになっています。独自のパラメータを渡したい場合は、fargs引数やラムダ式・クロージャを活用することも可能です。
出力結果

-
Matplotlibで複数のカラーバーを表示する方法【初心者向け解説】
Matplotlibでは、複数のカラーバー(カラースケール)を1つの図の中に同時に表示することができます。これにより、異なるデータセットをそれぞれ独立した色スケールで視覚的に比較できるようになります。 この記事では、imshow()を使って複数の画像データを描画し、それぞれに対応するカラーバーを追加する具体的な手順を紹介します。 複数のカラーバーを表示する手順 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 図(figure)とサブプロット(axes)のセットを作成します。 サンプルデータの個数を表す変数 N を初期化します。 NumPyを使ってランダムなデ
-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の