Matplotlib を使ったアニメーション画像の作成

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、事前に計算された画像のリストを使用してアニメーション画像を作成する方法を学びます。Python の Matplotlib ライブラリを使用してアニメーションを作成します。この実験の目的は、アニメーション画像を作成するプロセスを示し、その仕組みの基本的な理解を提供することです。

VM のヒント

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

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

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

ライブラリのインポート

始めに、使用するライブラリをインポートする必要があります。アニメーションを作成するために Matplotlib ライブラリと、アニメーション用のデータを生成するために Numpy ライブラリを使用します。

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

グラフと軸のオブジェクトを作成する

次に、アニメーションを作成するために使用するグラフと軸のオブジェクトを作成する必要があります。これらのオブジェクトを作成するために subplots メソッドを使用します。

fig, ax = plt.subplots()

関数を定義する

次に、アニメーション用のデータを生成するために使用する関数を定義する必要があります。この例では、サイン関数とコサイン関数を使ってデータを生成します。

def f(x, y):
    return np.sin(x) + np.cos(y)

データを生成する

アニメーション用のデータを生成するために、Numpy ライブラリの linspace メソッドを使用します。2 セットのデータ、すなわち x と y を生成し、その後 y データを整形して 2 次元配列を作成します。

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)

アニメーションフレームを作成する

次に、アニメーション用のフレームを作成します。60 フレームを生成するために for ループを使用します。ループの各反復では、x と y のデータを更新し、その後 imshow メソッドを使って新しい画像オブジェクトを作成します。そして、画像オブジェクトを ims リストに追加します。

ims = []
for i in range(60):
    x += np.pi / 15
    y += np.pi / 30
    im = ax.imshow(f(x, y), animated=True)
    if i == 0:
        ax.imshow(f(x, y))  ## show an initial one first
    ims.append([im])

アニメーションを作成する

次に、ArtistAnimation メソッドを使ってアニメーションを作成します。グラフオブジェクト、ims リスト、フレーム間のインターバル、および繰り返し遅延を指定します。

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)

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

最後に、アニメーションを表示するために show メソッドを使用します。

plt.show()

まとめ

この実験では、事前に計算された画像のリストを使ってアニメーション画像を作成する方法を学びました。Python の Matplotlib ライブラリを使ってアニメーションを作成し、Numpy ライブラリを使ってアニメーション用のデータを生成しました。グラフと軸のオブジェクトを作成し、関数を定義し、データを生成し、アニメーションフレームを作成し、そしてアニメーションを作成しました。その後、show メソッドを使ってアニメーションを表示しました。この実験は、アニメーション画像を作成する方法の基本的な理解を提供し、そのプロセスを示しました。