Pythonでグラフを自動生成し動画化する方法|データビジュアルをアニメーションに変換するステップ

Pythonでデータを使ってグラフを作り、それを動画にすることってできたりするのかなぁ…。プレゼン資料とかにインパクトある動画を入れられたら嬉しいんだけど…。
猫男
猫男
catman
catman
それならcatmanが手伝うよう。Pythonとmatplotlibやmoviepyを使って、グラフを自動生成し、それを動画化できるんだ。やり方を教えるよう。[これからは、Python動画作成がキーワードになるさ。

 

Pythonでグラフを作成する手順

Pythonでは、データの可視化ライブラリであるmatplotlibを使うことで、簡単にグラフを作成することができます。

特に、matplotlibはさまざまな種類のグラフを描画でき、プレゼン資料やレポート作成時に非常に役立ちます。

まずは、matplotlibを使って基本的なグラフを作成する方法を紹介します。

 

matplotlibでグラフを描く

まず、Pythonでグラフを生成するコードを見ていきましょう。

import matplotlib.pyplot as plt

data = [1, 2, 3, 4, 5]
plt.plot(data)
plt.title('Sample Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()

このコードを実行すると、シンプルな折れ線グラフが描画されます。

 

コードの解説

ここでは、matplotlib.pyplotplot関数を使ってデータをプロットしています。

コード 説明
plt.plot(data) データをもとに折れ線グラフを描画します。
plt.title('Sample Plot') グラフにタイトルを設定します。
plt.xlabel('X-axis') X軸のラベルを設定します。
plt.ylabel('Y-axis') Y軸のラベルを設定します。
plt.show() グラフを表示します。

 

思ったより簡単ですね!ただ、これを動画にするにはどうすればいいんでしょうか?グラフを動かして、もっと印象的な動画にしたいなぁ。
猫男
猫男
catman
catman
次はその部分を説明しよう。動画化にはmoviepyが役立つさ。動画にするための次のステップを見てみるんだ。

 

Pythonでグラフを動画化する方法

データが変化していく様子を動画で表現したい場合は、moviepyを使ってグラフをアニメーションに変換することができます。

moviepyを使うと、既存の画像やグラフを素材にして動画を作成し、より動的なデータビジュアライゼーションを生成できます。

 

グラフアニメーションの作成

以下のコードは、複数のフレームを生成して、それらを連結して動画化する流れを示します。

import matplotlib.pyplot as plt
import numpy as np
import moviepy.editor as mpy

def make_frame(t):
    x = np.linspace(0, 2, 200)
    y = np.sin(2 * np.pi * (x - 0.01 * t))
    plt.figure(figsize=(4, 3))
    plt.plot(x, y)
    plt.title(f'Sine Wave - Time {t:.2f}')
    plt.xlim(0, 2)
    plt.ylim(-1, 1)
    plt.close()
    return mplfig_to_npimage(plt.gcf())

animation = mpy.VideoClip(make_frame, duration=2)
animation.write_videofile('sine_wave.mp4', fps=20)

上記のコードを使うと、サイン波が時間とともに変化する様子を動画として保存できます。

 

コードの解説

このコードでは、時間tに応じて変化するサイン波をプロットしています。

コード 説明
make_frame(t) 時間tに基づく1つのフレームを描きます。
mplfig_to_npimage matplotlibのFigureを画像に変換する関数です。
mpy.VideoClip フレーム群を動画クリップとしてまとめます。
write_videofile ビデオファイルとして書き出します。

 

なるほど、グラフを動画にする仕組みってこうやるんですね!これならプレゼンがもっとインパクトあるものになりそうです。[がんばって挑戦してみます!
猫男
猫男
catman
catman
その意気だ。Pythonとmoviepyを使えば、データビジュアライゼーションの幅が広がるんだ。まずは、サイン波を動画化するところから試して、応用を重ねてみるといいさ。

 

まとめ

Pythonとライブラリを活用すれば、データをビジュアル化し、動画として保存することができます。

今回の内容を振り返ると、次のことが可能になります。

  • matplotlibを用いてグラフを自動生成する。
  • moviepyを使ってグラフを動画化して、アニメーションを作成する。
  • データの変化を動的に表現し、インパクトのある資料を作成する。

これにより、効果的に情報を伝えることができるようになり、プレゼンやレポートがより魅力的になるでしょう。

気軽に試してみてください!

 

これでPythonでの動画作成も視野に入ってきました。データをよりわかりやすく伝える手段として、グラフアニメーションを活用できそうです。
猫男
猫男
catman
catman
その通りさ。Pythonの力を借りて、自分のデータを動画にすることで、伝えたいメッセージをもっと印象深いものに変えられるんだ。しっかり活用していくんだ。

 

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。