はじめに
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
コメント