小编典典

如何使用 python/matplotlib 为 3d 绘图设置“相机位置”?

all

我正在学习如何使用 mplot3d 生成漂亮的 3d 数据图,到目前为止我很高兴。我现在想做的是一个旋转表面的小动画。为此,我需要为 3D
投影设置相机位置。我想这一定是可能的,因为在交互式使用 matplotlib 时可以使用鼠标旋转表面。但是我怎样才能从脚本中做到这一点?我在
mpl_toolkits.mplot3d.proj3d 中发现了很多转换,但我不知道如何将它们用于我的目的,也没有找到任何我想要做的例子。


阅读 89

收藏
2022-08-24

共1个答案

小编典典

通过“相机位置”,听起来您想要调整用于查看 3D 绘图的仰角和方位角。您可以使用
进行设置ax.view_init。我使用下面的脚本首先创建了绘图,然后我确定了一个好的海拔,或者elev,从中查看我的绘图。然后我调整了方位角,或者azim,以改变我的绘图周围的完整
360 度,在每个实例中保存图形(并在保存绘图时注意哪个方位角)。对于更复杂的相机平移,您可以调整仰角和角度以达到所需的效果。

    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)
2022-08-24