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()
実行結果

コードのポイント
FuncAnimationの主な引数は以下の通りです。これらを調整することで、アニメーションの速度や長さを自由に制御できます。
- fig:アニメーションを描画する対象のFigureオブジェクト。
- animate:各フレームで呼び出され、グラフを更新する関数。
- init_func:アニメーションの初期状態を定義する関数。
- frames:アニメーションの総フレーム数。
- interval:フレーム間の遅延時間(ミリ秒)。値が小さいほど高速に再生されます。
- blit:Trueにすると、変化のあった部分のみ再描画されるため、描画が高速化されます。
このように、animate関数内でy = np.sin(2 * np.pi * (x - 0.01 * i))のように位相を少しずつずらすことで、波が左から右へ流れるような滑らかな正弦波アニメーションを実現できます。
-
Matplotlibでpcolormeshをアニメーション化する方法【コード例付き解説】
Matplotlibでpcolormesh(擬似カラープロット)をアニメーション化する方法を、具体的な手順とサンプルコード付きで解説します。 アニメーション化の基本的な流れ pcolormeshをアニメーションさせるには、以下の手順に従います。 figureオブジェクトとサブプロットを作成する numpyを使ってx、y、tのデータポイントを生成する meshgrid関数で座標ベクトルから座標行列(X3、Y3、T3)を作成する pcolormesh()メソッドを使って、不規則な矩形グリッド上に擬似カラープロットを描画する カラーバーをfigureに追加する FuncAnimationクラスを使
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線