首页 > 解决方案 > 如何更改 mplot3d 中的相机中心位置?

问题描述

这是我第一次使用stackoverflow。mplot3d 似乎自动将相机围绕已绘制在轴上的所有内容的质心居中,以便所有内容始终在视野中。在我的基本示例中,我绘制了一个以 (0, 0, 10) 为中心的半径为 10 的球体,mplot3d 自动将相机居中在 (0, 0, 10) 处,因此球体始终填充绘图。有什么方法可以禁用此行为,使相机保持在 (0, 0, 0) 或更好的中心,手动将相机中心位置锁定到一组坐标?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

fig = plt.figure(figsize=(5,5))
sphere = fig.add_subplot(111, projection="3d")

phi = np.linspace(0, 2 * np.pi, 20)
theta = np.linspace(0, np.pi, 20)

xpt = 10 * np.outer(np.cos(phi), np.sin(theta))
ypt = 10 * np.outer(np.sin(phi), np.sin(theta))
zpt = 10 * np.outer(np.ones(np.size(phi)), np.cos(theta))

zpt = zpt+10

sphere.plot_surface(xpt, ypt, zpt, color="#00f3ff", alpha=1)

sphere.view_init(azim=0, elev=0)
sphere.disable_mouse_rotation()

plt.show()

输出演示:

在此处输入图像描述

如果没有,任何人都可以建议任何其他具有类似 3d 绘图功能的软件包,这些软件包会给我更多的控制权吗?

标签: pythonmatplotlibmplot3d

解决方案


推荐阅读