[matplotlib 3D] 14. 3Dグラフの回転アニメーション

matplotlib 3D

はじめに

この記事では、matplotlibのmplot3dモジュールを使用して、3Dグラフを回転させるアニメーションを作成する方法について詳しく解説します。Pythonで動的な3Dビジュアライゼーションを実現するための基本的な手法から、アニメーションの保存方法まで、実践的なテクニックを紹介します。

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

スタイルの適用

テストデータの取得

get_test_dataの引数を変更すると、以下のような結果になります。

最初に表示するグラフの設定

視点を変えるアニメーション関数

関数からfigを返す必要があります。

elevはElevation viewing angle(仰角)の略で、視点の高さを設定します(デフォルト値は30)。

azimはAzimuthal viewing angle(方位角)の略で、水平方向の角度を設定します(デフォルト値は-60)。

アニメーションの表示

figはfigureオブジェクトで、このfigにアニメーションを表示します。

animateはアニメーションを制御する関数で、ここでは3.6°ずつ横方向に回転するよう設定しています。

init_funcは初期化関数で、アニメーション開始時に表示するグラフの初期設定を行います。

frameはアニメーション全体のコマ数を指定します。

intervalは表示間隔をミリ秒単位で設定します。例えば100msに設定すると、100フレームの場合は10秒のアニメーションになります。

blitをTrueにすると、アニメーションが最適化され、表示がスムーズになるなどの効果があります。

アニメーションをHTML5のビデオにして出力することができます。

アニメーションの保存

上記のようにすることで100 dpiのアニメーションをffmpegで書き出して指定のファイル名で保存することができる。

blit=Falseとしたアニメーション

軸とグリッドを消したアニメーション

grid(False)を使用するとグリッドが非表示になり、set_axis_off()を使用すると軸が非表示になります。

縦方向回転

3Dグラフの縦方向の回転は下記記事で解説しました。

[matplotlib animation] 37. 3Dグラフの縦回転アニメーション
matplotlibアニメーション機能を使用した3Dグラフの縦回転アニメーションの作成方法を解説。FuncAnimationを活用して3D空間上のグラフを垂直軸周りに回転させる実装例とコード解説を提供します。

縦&横方向回転

3Dグラフの縦&横の両方向の回転は下記記事で解説しました。

[matplotlib animation] 38. 3Dグラフの縦&横回転アニメーション
このページでは、matplotlibのFuncAnimationを使用して3Dグラフを縦方向と横方向に回転させるアニメーションの作成方法を解説します。3次元データの視覚化とアニメーション技術を組み合わせることで、データをより直感的に理解できるようになります。

参考

Rotating a 3D plot — Matplotlib 3.1.2 documentation
Bit Block Transfer - Wikipedia
Matplotlib > view_init(elev=None, azim=None)のデフォルト値 > elev = 30, azim = -60 - Qiita
動作環境 GeForce GTX 1070 (8GB) ASRock Z170M Pro4S Ubuntu 16.04 LTS desktop amd64 TensorFlow v1.2.1 cuDNN v5.1 for Linux...

コメント

  1. […] […]

  2. […] アニメーションの部分は下記のwireframeの回転アニメーションとおなじコードとなっている。 […]