Python
 Computer >> コンピューター >  >> プログラミング >> Python

matplotlibのFuncAnimationを使ってPythonで等高線図をアニメーション化する方法

Pythonのmatplotlibでは、FuncAnimationクラスを利用することで、等高線図(コンタープロット)を簡単にアニメーション化できます。時間とともに変化するデータを視覚的に表現したい場合に非常に便利な手法です。

等高線図をアニメーション化する手順

  1. 10×10×8の形状を持つランダムなデータを作成します。
  2. subplots()メソッドを使って、図(Figure)とサブプロット(Axes)を作成します。
  3. FuncAnimation()クラスを使い、指定した関数*func*を繰り返し呼び出すことでアニメーションを生成します。
  4. フレームごとに等高線の値を更新できるよう、animateメソッドを定義し、FuncAnimation()クラスに渡します。
  5. 最後に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のFuncAnimationを使ってPythonで等高線図をアニメーション化する方法

  1. MatplotlibでPythonのプロットに度(°)記号を挿入する方法

    Matplotlibで作成したグラフに度(°)記号を挿入したい場合、LaTeX表記を利用すると簡単に実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。 度記号を挿入する手順 numpyを使って、pV(圧力×体積)、nR、T(温度)のデータポイントを作成します。 plot()メソッドを使って、pVとTの関係をプロットします。 xlabel()メソッドで、x軸のラベル「Pressure x Volume」を設定します。 ylabel()メソッドで、LaTeX表記 $^\circ$ を含む温度ラベルをy軸に設定します。 show()メソッドを呼び出して、図を画面に表

  2. Pythonで時系列データをプロットする方法をわかりやすく解説

    Pythonのmatplotlibを使えば、時系列データ(日時を軸にしたデータ)を簡単にグラフ化できます。ここでは、datetimeオブジェクトを含むデータを折れ線グラフとして描画する基本的な手順を紹介します。 時系列プロットの基本手順 numpyを使用して、x軸(日時データ)とy軸(数値データ)を作成します。 plot()メソッドを使って、作成したx・yのデータをプロットします。 show()メソッドを実行して、図を画面に表示します。 コード例 以下のサンプルコードでは、2021年1月1日の0時から23時までの24個の日時データを生成し、それに対応するランダムな数値をy軸としてプロットし