はじめに
このブログ記事では、matplotlibのFuncAnimationとmatplotlib.patches.Ellipseを使用して、様々な形状と色をもつ楕円をランダムに表示するアニメーションの作成方法について解説します。
コード
解説
モジュールのインポート
バージョン
楕円の生成
Ellipseのxyパラメータで表示位置を設定し、widthで幅、heightで高さ、angleで角度を指定します。リスト内包表記を使用してnumの数だけ楕円を生成します。
アニメーションの表示
透明度はset_alpha
で、色はset_facecolor
で設定できます。set_clip_on(False)
を使用すると、楕円が軸範囲からはみ出しても全て表示されます。FuncAnimation
でアニメーションを表示する際、frame数を250、intervalを30msに設定すると、約7.5秒のアニメーションになります。HTML(ani.to_html5_video())
を実行することで、Jupyter NotebookやJupyter Lab上に直接アニメーションを表示できます。アニメーションを保存するには、ani.save('ファイル名', writer="ffmpeg", dpi=100)
を使用してMP4形式で出力できます。
まとめ
matplotlibのアニメーション機能と図形描画の組み合わせにより、簡単にダイナミックな視覚表現を作成できることがわかりました。このテクニックは、単純な図形から複雑なデータ可視化まで、様々な場面で応用可能です。
参考
Ellipse Demo — Matplotlib 3.2.2 documentation
コメント