Matplotlibでリアルタイムプロット中にX軸を移動させる方法
リアルタイムプロット中にMatplotlibでX軸を移動させたい場合、matplotlib.animationモジュールのFuncAnimationとset_xlim()メソッドを組み合わせることで簡単に実現できます。以下に具体的な手順を示します。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- figureとサブプロットのセットを作成します。
- NumPyを使用してx・yのデータポイントを生成します。
plot()メソッドを使ってx・yのデータポイントをプロットします。- フレームごとにX軸の表示範囲を更新する
animate関数を定義し、FuncAnimationで繰り返し呼び出してアニメーションを作成します。 show()メソッドで図を表示します。
サンプルコード
import matplotlib.pylab as plt
import matplotlib.animation as animation
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
x = np.linspace(0, 15, 100)
y = np.cos(x)
ax.plot(x, y, lw=2, color='red')
def animate(frame):
ax.set_xlim(left=0, right=frame)
ani = animation.FuncAnimation(fig, animate, frames=10)
plt.show()
コードの解説
このコードでは、まずnp.linspace(0, 15, 100)で0から15までの範囲に100個の等間隔データポイントを生成し、そのコサイン値を赤い線でプロットしています。
ポイントとなるのはanimate(frame)関数です。この関数内でax.set_xlim(left=0, right=frame)を呼び出すことで、各フレームごとにX軸の右端(最大値)がframeの値へと変化します。frames=10と指定しているため、X軸の表示範囲は0から9まで段階的に拡大していきます。
FuncAnimation(fig, animate, frames=10)は、figureに対してanimate関数を10回連続して呼び出すことでアニメーションを生成します。これにより、リアルタイムにX軸が移動していく様子を視覚的に確認できます。
実行結果

実行すると、コサインカーブのグラフ上でX軸の表示範囲が徐々に広がっていくアニメーションが表示されます。センサーデータのストリーミング表示や時系列データの可視化など、リアルタイム描画が必要な場面で応用できるテクニックです。
-
MatplotlibでグラフのX軸とY軸を入れ替える方法
Matplotlibでグラフの軸(X軸とY軸)を入れ替えたい場合、subplots()メソッドを使って図(figure)を作成し、2つのサブプロットを追加する方法が便利です。1つ目のサブプロットに曲線を描画し、そのX・Yデータを抽出して、2つ目のサブプロットの曲線に設定し直すことで、軸を入れ替えたグラフを作成できます。 手順 NumPyを使って、xとyのデータポイントを作成します。 図を作成し、2つのサブプロットを追加します。 両方のサブプロットにタイトルを設定します。 plot()メソッドを使って、xとyのデータポイントをプロットします。 get_xdata()とget_ydata()を使
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線