いきなりですが、次のような動画を見たことがありませんか?
YouTubeでよく見かけるようになりました。
これは、バーチャートレースと言われています。
レースと表現されるのは、棒グラフが競い合うように見えるからでしょうね。
そして、YouTubeで見かけるバーチャートレースの多くは、Flourishで作られたモノのようです。
Flourishは、グラフ作成サービスです。
このようなサービスを利用するのも一つの手段だと思います。
しかし、無料のサービス依存は危険です。
いつサービスが、閉鎖するかもしれません。
「それなら、作ってやろう!!」と言うのがプログラマーです。
そのように考えた人が、簡単に検証までできるようにまとめました。
本記事の内容
- PythonでアニメーションGIFと動画を作成するための環境
- Matplotlibの設定ファイルの確認
- FFmpegのダウンロード・インストール
- ImageMagickのダウンロード・インストール
- PythonでアニメーションGIFをつくる
- Pythonで動画をつくる
それでは、上記の内容に沿って説明を行っていきます。
PythonでアニメーションGIFと動画を作成するための環境
今回の記事内で用いた環境は、次の通りです。
- Windows 10 Home (バージョン1909)※以下の説明は64bit前提
- Python 3.7.3
- NumPy 1.18.5
- Matplotlib 3.2.1
- FFmpeg 4.2.3
- ImageMagick-7.0.10-18
NumPyとMatplotlibは、インストール前提で説明を進めます。
Pythonと言えば、 NumPyとMatplotlibでしょうから。
Matplotlibの設定ファイルの確認
Matplotlibはすでにインストール済みを想定しています。
一応、インストールコマンドを載せておきます。
pip install matplotlib
ここで重要なのは、Matplotlibの設定ファイルです。
設定ファイルは次のプログラムで探します。
import matplotlib print(matplotlib.matplotlib_fname())
これを実行すれば、以下のパスが表示されます。
~\site-packages\matplotlib\mpl-data\matplotlibrc
matplotlibrcがMatplotlibの設定ファイルです。
とりあえず、今はここまでとします。
「ImageMagickのインストール」で、matplotlibrcに変更を加えます。
FFmpegのダウンロード・インストール
FFmpegのダウンロード
公式サイトへアクセスします。
https://ffmpeg.zeranoe.com/builds/ → 廃止されたようです
追記 2021年5月12日
代わりに以下でダウンロード可能です。
https://github.com/BtbN/FFmpeg-Builds/releases
追記 2021年11月14日
FFmpegのダウンロードは、次の記事をご覧ください。
このページの記事を書いたときより、かなりダウンロードの方法が異なっています。
バージョンを安定版で最新のものに変更します。
初期ではgitのバージョンが、指定されています。
しかし、さすがにそこまで最新は必要ありません。
画面の最下部にスクロールします。
Nameが「ffmpeg-4.2.3-win64-static.zip」であることを確認。
確認して問題なければ、「Download Build」をクリック。
ダウンロードが完了したら、zipを適当な場所で解凍します。
フォルダ名をffmpegに変更しておきましょう。
FFmpegのインストール
インストール作業自体は、必要ではありません。
しかし、ダウロードしたバイナリにパスを通す必要があります。
パスを通すの対象は、「ffmpeg.exe」です。
私の環境では、次のパスを設定します。
C:\soft\ffmpeg\bin\
環境変数の設定方法に関しては、ここでは説明しません。
なお、登録はシステム環境変数の方でしておきます。
ちなみに、上の画面を簡単に立ち上げる方法があります。
複数方法はあります。
私は、以下のボックスに「sysdm.cpl」と入力してEnterで立ち上げます。
ImageMagickのダウンロード・インストール
ImageMagickのダウンロード
公式サイトへアクセスします。
http://www.imagemagick.org/script/download.php#windows
ImageMagick-7.0.10-18-portable-Q16-x64.zipをダウンロードします。
HTTPからでよいでしょう。
ダウンロードが完了したら、zipを適当な場所で解凍します。
フォルダ名をimagemagickに変更しておきましょう。
私の環境では、exeファイルのパスは以下となります。
C:\soft\imagemagick\magick.exe
exeファイルのパスということを覚えておいてください。
ImageMagickのインストール
インストール作業自体は、必要ではありません。
レジストリを汚したり、無駄なパスを増やしたくありません。
ただ、パスを通す必要があります。
しかし、FFmpegとは異なり、環境変数への追加は必要ありません。
その代り、Matplotlibの設定ファイルにパスを設定しなければなりません。
こちらの方が、明示的に管理できますね。
Matplotlibの設定ファイルは、上述の「Matplotlibの設定ファイルの確認」で確認しました。
そのmatplotlibrcをエディターで開きます。
最終行に以下の行を追加しています。
animation.convert_path: C:\soft\imagemagick\magick.exe
exeファイルのパスは、上記で説明しています。
覚えておいてくださいと言いましたね。
PythonでアニメーションGIFをつくる
Anacondaで開発している場合は、Anacondaを再起動しておきましょう。
Matplotlibの設定ファイルの変更が、反映されていない場合もありえます。
次が、アニメーションGIFを作成するコードです。
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation graphs = [] fig = plt.figure() x = np.arange(-30, 30, 0.2) y = x ** 2 for i in range(30): plt.plot(x, y) g = plt.plot(i, i ** 2, 'o') graphs.append(g) anim = animation.ArtistAnimation(fig, graphs, interval=30) plt.show() anim.save('anim.gif', writer='imagemagick')
作成されたanim.gifです。
あっけなくアニメーションGIFが作成できましたね。
それでは、次は動画の作成です。
Pythonで動画をつくる
次が、動画を作成するコードです。
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation graphs = [] fig = plt.figure() x = np.arange(-30, 30, 0.2) y = x ** 2 for i in range(30): plt.plot(x, y) g = plt.plot(i, i ** 2, 'o') graphs.append(g) anim = animation.ArtistAnimation(fig, graphs, interval=300) plt.show() anim.save('anim.mp4', writer='ffmpeg')
作成されたanim.mp4です
あっけなく動画も作成できました。
「Pythonで動画をつくる」は、以上です。