view_init
的解决方案是直接设置ax.dist
。根据get_proj的文档,“dist是眼睛观察点到物体点的距离”。初始值dist = 10
目前已硬编码。较低的值(大于0!)将导致缩放图。
注意:此行为实际上没有详细记录并可能会更改。在大多数情况下,更好的解决方案是更改轴的限制以仅绘制相关部分。您可以使用ax.autoscale(tight=True)来方便地完成此操作。
%matplotlib inline
from IPython.display import display
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Grab some test data.
X, Y, Z = axes3d.get_test_data(0.05)
# Plot a basic wireframe.
ax.view_init(90, 0)
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
plt.close()
from ipywidgets import interact
@interact(dist=(1, 20, 1))
def update(dist=10):
ax.dist = dist
display(fig)
dist = 10
dist = 5
我知道这是一个老问题,但我想为任何正在寻找答案的人提供更新的答案。
ax.dist
参数已被弃用。更好的方法是使用ax.set_box_aspect()
函数中的“zoom”参数。
例如:
ax.set_box_aspect((1, 1, 1), zoom=2.0)
在调用图形画布管理器的 show()
函数之前,需要设置这个。