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

Matplotlibで正弦曲線をアニメーション化する方法をわかりやすく解説

PythonのMatplotlibを使えば、正弦曲線(サインカーブ)を簡単にアニメーションとして描画できます。ここでは、matplotlib.animationモジュールのFuncAnimationを利用した基本的な実装手順を、コード例とともに紹介します。

正弦曲線をアニメーション化する手順

  • 図(figure)のサイズを設定し、サブプロット間および周囲のパディングを調整します。
  • 新しい図を作成するか、既存の図をアクティブにします。
  • 現在の図に座標軸(axes)を追加し、X軸・Y軸の表示範囲を指定します。
  • 空のリストを使って線をプロットし、初期状態を準備します。
  • 初期化関数で空のデータを渡して線をリセットします。
  • アニメーション関数内で正弦曲線の値を更新し、線オブジェクトを返します。
  • show()メソッドを使って図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)

def init():
    line.set_data([], [])
    return line,

def animate(i):
    x = np.linspace(0, 2, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
    return line,

anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=20, blit=True)
plt.show()

実行結果

Matplotlibで正弦曲線をアニメーション化する方法をわかりやすく解説

コードのポイント

FuncAnimationの主な引数は以下の通りです。これらを調整することで、アニメーションの速度や長さを自由に制御できます。

  • fig:アニメーションを描画する対象のFigureオブジェクト。
  • animate:各フレームで呼び出され、グラフを更新する関数。
  • init_func:アニメーションの初期状態を定義する関数。
  • frames:アニメーションの総フレーム数。
  • interval:フレーム間の遅延時間(ミリ秒)。値が小さいほど高速に再生されます。
  • blit:Trueにすると、変化のあった部分のみ再描画されるため、描画が高速化されます。

このように、animate関数内でy = np.sin(2 * np.pi * (x - 0.01 * i))のように位相を少しずつずらすことで、波が左から右へ流れるような滑らかな正弦波アニメーションを実現できます。

  1. Matplotlibでpcolormeshをアニメーション化する方法【コード例付き解説】

    Matplotlibでpcolormesh(擬似カラープロット)をアニメーション化する方法を、具体的な手順とサンプルコード付きで解説します。 アニメーション化の基本的な流れ pcolormeshをアニメーションさせるには、以下の手順に従います。 figureオブジェクトとサブプロットを作成する numpyを使ってx、y、tのデータポイントを生成する meshgrid関数で座標ベクトルから座標行列(X3、Y3、T3)を作成する pcolormesh()メソッドを使って、不規則な矩形グリッド上に擬似カラープロットを描画する カラーバーをfigureに追加する FuncAnimationクラスを使

  2. Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説

    Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線