我正在学习如何使用 mplot3d 生成漂亮的 3d 数据图,到目前为止我很高兴。我现在想做的是一个旋转表面的小动画。为此,我需要为 3D 投影设置相机位置。我想这一定是可能的,因为在交互式使用 matplotlib 时可以使用鼠标旋转表面。但是我怎样才能从脚本中做到这一点?我在 mpl_toolkits.mplot3d.proj3d 中发现了很多转换,但我不知道如何将它们用于我的目的,也没有找到任何我想要做的例子。
通过“相机位置”,听起来您想要调整用于查看 3D 绘图的仰角和方位角。您可以使用 进行设置ax.view_init。我使用下面的脚本首先创建了绘图,然后我确定了一个好的海拔,或者elev,从中查看我的绘图。然后我调整了方位角,或者azim,以改变我的绘图周围的完整 360 度,在每个实例中保存图形(并在保存绘图时注意哪个方位角)。对于更复杂的相机平移,您可以调整仰角和角度以达到所需的效果。
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)