Matplotlib アニメーションの作成

MatplotlibMatplotlibBeginner
オンラインで実践に進む

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Matplotlib を使ってアニメーションを作成する方法を学びます。具体的には、Animation.pause()Animation.resume() メソッドを使ってアニメーションを一時停止して再開する方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使って練習します。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

ライブラリのインポート

このステップでは、Matplotlib を使ってアニメーションを作成するために必要なライブラリをインポートします。

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

アニメーションの定義

このステップでは、作成したいアニメーションを定義します。各フレームで右に移動する正規分布を表示するアニメーションを作成します。

class PauseAnimation:
    def __init__(self):
        ## グラフと軸を作成
        fig, ax = plt.subplots()
        ax.set_title('Click to pause/resume the animation')

        ## x 軸の値を作成
        x = np.linspace(-0.1, 0.1, 1000)

        ## 正規分布から始める
        self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
                   * np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))

        ## プロットを作成
        self.p, = ax.plot(x, self.n0)

        ## アニメーションを作成
        self.animation = animation.FuncAnimation(
            fig, self.update, frames=200, interval=50, blit=True)

        ## アニメーションを一時停止状態に設定
        self.paused = False

        ## 一時停止を切り替えるためのボタン押下イベントを追加
        fig.canvas.mpl_connect('button_press_event', self.toggle_pause)

    def toggle_pause(self, *args, **kwargs):
        ## 一時停止と再開を切り替える
        if self.paused:
            self.animation.resume()
        else:
            self.animation.pause()
        self.paused = not self.paused

    def update(self, i):
        ## 正規分布を更新
        self.n0 += i / 100 % 5
        self.p.set_ydata(self.n0 % 20)
        return (self.p,)

アニメーションオブジェクトの作成

このステップでは、ステップ 2 で定義した PauseAnimation クラスのオブジェクトを作成します。

pa = PauseAnimation()

アニメーションを表示する

このステップでは、ステップ 2 で作成したアニメーションを表示します。

plt.show()

まとめ

この実験では、Matplotlib を使ってアニメーションを作成する方法と、Animation.pause()Animation.resume() メソッドを使ってアニメーションを一時停止および再開する方法を学びました。また、ユーザー入力に応答するインタラクティブなアニメーションを作成する方法も学びました。この知識を使えば、独自のカスタムアニメーションを作成し、それにインタラクティビティを追加することができます。