Pythonでデータをアニメーション化する – シンプルガイド

スポンサーリンク

データビジュアライゼーションと聞いて、私たちは実際に何を思い浮かべますか?グラフや折れ線グラフ、散布図などを思い浮かべることはできるだろう。

しかし、ライブプロットを作成することができるとしたらどうでしょう。

これはビデオ録画ではなく、純粋なプログラミングであり、いくつかのライブラリのセットを使用します。

グラフ、ヒストグラム、偏差値などの美しいアニメーションを作ることができるのです。

スポンサーリンク

ライブラリと環境設定入門

今回使用するライブラリは以下の通りです。

  1. matplotlib
  2. Seaborn
  3. Numpy

統合開発環境環境

  1. Visual Studio コード
  2. Anaconda環境
  3. Pythonバージョン:3.9.7

matplotlib のアニメーションクラス

matplotlib は、プロット作業を非常に簡単にする非常に有名なライブラリです。

これは、フリーでオープンソースであり、ドキュメントには簡単に使い始められるガイドが用意されています。

アニメーションのために、特別なクラスが用意されています。

「animation” という特別なクラスがあります。

このクラスは、Pythonでデータをアニメーションさせるという我々の要求を満たすいくつかの関数を持っています。

簡単なコードを使って、その使い方を説明します。

公式ドキュメントはこちら https://matplotlib.org/stable/api/animation_api.html を参照してください。

まず、計算処理によって可視化されるグラフの種類を簡単に説明します。

matplotlib でまだプロットしています。

これらは,軸上のいくつかの点におけるデータの流れを描いた絵に過ぎません.

matplotlib でのアニメーションプロット

これらは、各ピクセルを 1 つずつ画面上に表示することで、実際に点の位置を教えてくれます。

これは、プロット自体をアニメーション化します。

単純な散布図とアニメーションによる散布図の比較

単純な散布図のコード。

from matplotlib import pyplot as plt
import random
import sys
 
x = []
y = []
 
for i in range(0, 50):
    x.append(random.randint(0, 100))
    y.append(random.randint(0, 100))
         
# plt.xlim(0, 100)
# plt.ylim(0, 100)
plt.xlabel("X-axis")
plt.ylabel("Y-plot")
plt.title("Simple x-y plot")
plt.scatter(x, y, color = "green")
# plt.pause(0.01)
     
sys.exit(plt.show())

結果は、以下の通りになります。

from matplotlib import pyplot as plt
import random
import sys
 
x = []
y = []
 
plt.xlabel("X-axis")
plt.ylabel("Y-plot")
plt.title("Simple x-y plot")
for i in range(0, 50):
    x.append(random.randint(0, 100))
    y.append(random.randint(0, 100))
    plt.scatter(x, y, color = "green")
    plt.pause(0.01)
     
sys.exit(plt.show())

アニメーション散布図のコード。

from matplotlib import pyplot as plt
import random
import sys
 
x = []
y = []
 
plt.xlabel("X-axis")
plt.ylabel("Y-plot")
plt.title("Simple bar plot")
for i in range(0, 50):
    x.append(random.randint(0, 100))
    y.append(random.randint(0, 100))
    plt.bar(x, y, color = "green")
    plt.pause(0.01)
     
sys.exit(plt.show())

結果は以下の通りです。

説明

  1. まず、ライブラリをインポートします。
  2. 次に、2つの空のリストxとyを宣言します。
    1. 次に、for ループを実行し、random モジュールの randint() メソッドを使用して、いくつかのランダムな整数でリストを埋めます。ループの中で制限範囲を設定するのを忘れないようにしましょう。
    1. 次に、pyplotモジュールのscatter()関数を呼び出します。プロットカラーを緑に設定します。
    1. 最後はとても重要です。plt.pause()`関数を使って、プロットごとに0.01秒の時間間隔を設定します。
  3. そして最後に plt.show() 関数でプロットを表示します。

棒グラフをアニメーション化するコード

class FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, *, cache_frame_data=True, **kwargs)

結果は以下の通りです。

説明

  1. すべての処理は上のプロットと同じです。
  2. しかし、ここではアニメーション棒グラフを描くために plt.bar() 関数を呼び出しています。

matplotlib.animation モジュールの使用

先に進むにつれて、主な焦点は組み込みのアニメーションクラスに移ります。

これは、より楽しく学ぶことができます。

このサブモジュールにはいくつかの要素があります。

このクラスのプロパティを継承する2つのサブクラスがあります。

    1. ArtistAnimation: アーティストのプロパティを使用してアニメーションを行います。
  1. FuncAnimation: 再帰に従って、図/プロットをアニメーション化するための関数を連続的に呼び出します。

プロットをより精巧にするために、これらのクラスを使用します。

簡単な例として、同じ考え方でsin(x)関数の流れを見ることにしましょう。

S

ライブプロットの応用

  1. 株式市場において、投資家は株価の上昇と下降をライブで見ることができる。
    1. 多科目病院では、患者の脈拍数をアニメーションで表示するハートモニターを導入している。

まとめ

このようにして、美しいビジュアライゼーションを作成することができます

これらは非常に素晴らしいアプリケーションであり、多くの実生活の場面で役に立つことでしょう。

ここで、このトピックを終わります。

タイトルとURLをコピーしました