[matplotlib animation] 111. 3D plotでfocal lengthを変えた時の見た目の変化

matplotlib

はじめに

Matplotlib 3.6.0から追加された新機能[3d plotのfocal length]を変化させた時に3d plotの見た目がどのように変わるかを、matplotlibのFuncAnimationのアニメーションで表示する。

focal lengthは焦点距離のことで、デフォルト値は1である。1より焦点距離を長くすると3D plotの平坦化が進み、1から0の間で焦点距離を変化させると遠近感が強調されて、3D plotに奥行きが出るようになる。

コード&解説

モジュールのインポートなど

3D plot表示のために、mpl_toolkits.mplot3d からaxes3dをimportする。

バージョン

データの準備

axes3d.get_test_dataでテストデータ(X,Y,Z)を読み込む。

focal_lengthを変化させてプロット

ax.plot_wireframe()で3D plotを作成し、ax.set_proj_type(‘persp’)でfocal_lengthに適用な値を入れて表示すると以下のようになる。

アニメーションで表示

focal_lengthを連続的に変化させた時のアニメーションは以下のようになる。

focal_lengthの値は、np.logspace(-2,0,100)で10-2から100をlogスケールで等間隔に100点とした。

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

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

参考

What's new in Matplotlib 3.6.0 (Sep 15, 2022) — Matplotlib 3.6.2 documentation

コメント