はじめに
サインポール(barber pole)は理容店を示す伝統的な看板で、細長い円柱状の構造に赤、白、青の螺旋状の縞模様が特徴です。この記事では、MatplotlibのFuncAnimationを使用して、回転するサインポールのアニメーションを作成する方法を解説します。
コード
解説
モジュールのインポート
グラフの設定
図の大きさはfigsize(3,6)で、縦に長い形にしています。
サインポールの作成
サインポールはmatplotlib.patches.polygonで作成します。
最初に、図形を表示する位置をリスト内のタプル[(#,#)]で設定。この座標を結ぶ形状が作成されます。
patches.Polygon(xy = posi_ao1,color=’blue’)などで図形を作成します。
作成した図形は、ax.add_patch(ao1)などで、figに反映させます。
アニメーションの設定
アニメーション表示するための変数の設定
アニメーションとしては、上方向に移動するのみとなっています。
アニメーションの初期設定
initはアニメーションの開始時に一度だけ実行される関数で、グラフの初期設定を行います。set_xticklabelsとset_xticksを使用して軸ラベルと軸目盛りを非表示にしています。returnステートメントには、アニメーションで動かしたいオブジェクトを記述します。
アニメーションの設定
各図形の位置を+yして上方向に移動させます。図形の位置はset_xyメソッドを使って更新します。アニメーションで動かしたいオブジェクトはreturn文に記述します。
アニメーションの表示
intervalは各フレームの切り替わる間隔を表す設定で、単位はミリ秒です。framesはupdate関数が実行される回数を指定します。interval × frames = 5000[ms]となるため、アニメーションの総再生時間は5秒となります。HTML(ani.to_html5_video())を実行すると、Jupyter上で直接アニメーションを表示できます。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント