はじめに
matplotlib mplot3dの3D wireframe plotをArtistAnimationを使って、アニメーションで表示する方法について解説する。
コード(matplotlib example)
Rotating 3D wireframe plot — Matplotlib 3.4.0 documentation
上記ページのコードをjupyter notebookで実行した結果、
%matplotlib nbagg Warning: Cannot change to a different GUI toolkit: nbagg. Using notebook instead.
とのことでアニメーションが表示されなかった。
%matplotlib notebook
としてもアニメーションが表示されず、下の画像が表示された。
そこで、ArtistAnimationを使って書き改めた。
コード&解説
モジュールのインポート
バージョン
データ生成関数
Zデータを生成する関数generateを以下のように定義する。
X, Y meshgridの作成
X,Yデータをnp.meshgridで作成する。
plot_wireframeでプロット
関数generateのphiを0とした時のデータをplot_wireframeで表示すると以下のようになる。
アニメーション用グラフの作成
imsで空のリストを作成する。
phiの0個目から50個目まで順次 Zのdataを作成して、wireframeでプロット(im)を作成し、
imsにimをappendで追加していく。
ここで[im]と[]で囲むのがポイントとなる。
最終的にimsはplot_wireframeのリストとなる。
アニメーションの表示
ArtistAnimationでアニメーションを作成する。
figはアニメーションを表示するfigであり、imsはグラフのリストである。interval では図の表示時間[ms]を設定する。
アニメーションをIPythonの HTML displayで表示する。to_html5_videoでアニメーションをHTML5 に変換できる。
表示されるアニメーションは以下のようになる。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
matplotlib.animation.ArtistAnimation — Matplotlib 3.9.2 documentation
louistiao.me - louistiao リソースおよび情報
louistiao.me は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、louistiao.meが全てとなります。あなたがお探しの内容が見つかることを願っています!
コメント