1. ホーム
  2. python

[解決済み] Python/Matplotlibを使った3Dプロットで「カメラ位置」を設定するには?

2022-04-24 13:51:07

質問

3Dデータの素敵なプロットを作成するためにmplot3dの使い方を勉強しています。今、私がやろうとしていることは、回転する表面のちょっとしたアニメーションです。そのために、3D投影のためのカメラ位置を設定する必要があります。matplotlibをインタラクティブに使う場合、マウスを使ってサーフェスを回転させることができるので、これは可能なことだと思います。しかし、スクリプトからこれを行うにはどうしたらよいでしょうか? mpl_toolkits.mplot3d.proj3d でたくさんの変換を見つけましたが、私の目的のためにこれらを使用する方法を見つけることができませんでしたし、私がやろうとしていることの例も見つかりませんでした。

どのように解決するのですか?

カメラ位置とは、3Dプロットを見るために使う仰角と方位角を調整したいようですね。これは、以下の方法で設定できます。 ax.view_init . 私は以下のスクリプトを使って、まずプロットを作成し、次に良い標高、つまり elev プロットを見るために、そこから。 次に方位角、つまり azim その都度、図を保存し、どの方位角で保存したかを記録します。 より複雑なカメラパンの場合は、仰角と角度の両方を調整することで、望ましい効果を得ることができます。

    from mpl_toolkits.mplot3d import Axes3D
    ax = Axes3D(fig)
    ax.scatter(xx,yy,zz, marker='o', s=20, c="goldenrod", alpha=0.6)
    for ii in xrange(0,360,1):
        ax.view_init(elev=10., azim=ii)
        savefig("movie%d.png" % ii)