pythonを利用した関数計算結果のアニメーションの作り方を説明します。種々のやり方があります。次の資料をご覧ください。
資料 → アニメーション
p.1 jupyter上で実施するには「%matplotlib notebook」を最初に書いてください。今までと異なるのは、animationというコマンドを読み込みます。ここではsin波が動いていくアニメーションです。x軸を0~10まで0.1刻みでプロットします。yはxの値から順番に1~50差し引いた値のsinの値になります。このデータを変数imに代入していきます。50パターン格納します。「ArtistAnimation」というコマンドにより変数imに格納した50のパターンを順番に表示すると動いているように見えます。 紙に少しずつズラして絵を描いたものをパラパラとめくると動いているように見える「パラパラ漫画」と同じ原理です。
p.2 左のプログラムは円上にある●が時間と共に拡がっていくアニメーションです。これは参考書に事例として載っていたものです。円の360°を10分割した点に●を散布図で描きます。つまり、X=cos(t)、Y=sin(t)の座標に●をプロットします。「scatter」は散布図を描くコマンドです。「i*0.1」のiの数値を変えることで円の大きさが変化します。今回は「FuncAnimation」というコマンドです。これは「plot」という関数(上述の計算をしたデータをpltに格納する手順を関数として定義)をアニメーションとして、30ミリ秒のインターバルで実行させるコマンドです。 p.1の「ArtistAnimation」は一度に覚えたデータをパラパラと変えますが、この「FuncAnimation」は順次描いています。各々のコマンドは、一長一短あります。計算処理が複雑な場合は「ArtistAnimation」が、データ量が多い時は「FuncAnimation」が有利かなと思います。このプログラムの最後に「.gif」の拡張子をつけてデータを保存します。
保存した「.gif」ファイルをクリックするとアニメーションがスタートしますが、連続しない場合があります。今回は、以下の情報を基に実施したところ連続が可能になりました。他に、「imagemagick」というフリーソフトで編集可能なようですが、まだ使いこなしておりません。わかり次第お知らせします。
gifファイルのアニメーションを連続にする方法→ https://makbee.net/loop-gif/
このgifファイルはパワーポイント等にコピーしてペーストすると動き続けます。いかがでしたか? 明日は、パワーポイントを利用して、簡単にパラパラのアニメーションができる方法を説明します。