[matplotlib animation] 25. サインポール(理容店を示す細長い円柱状の看板)

matplotlib Animation

はじめに

サインポール(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ファイル)

参考

matplotlib.patches.Polygon — Matplotlib 3.10.5 documentation

コメント