通过改变 azim
、dist
和 elev
来实现简单的示例
为了对之前在https://dev59.com/FWcs5IYBdhLWcg3wXi5E#12905458解释的内容添加一些简单的示例图像。
以下是我的测试程序:
import sys
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
if len(sys.argv) > 1:
azim = int(sys.argv[1])
else:
azim = None
if len(sys.argv) > 2:
dist = int(sys.argv[2])
else:
dist = None
if len(sys.argv) > 3:
elev = int(sys.argv[3])
else:
elev = None
X = np.arange(-5, 6, 1)
Y = np.arange(-5, 6, 1)
X, Y = np.meshgrid(X, Y)
Z = X**2
surf = ax.plot_surface(X, Y, Z, linewidth=0, antialiased=False)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
if azim is not None:
ax.azim = azim
if dist is not None:
ax.dist = dist
if elev is not None:
ax.elev = elev
print('ax.azim = {}'.format(ax.azim))
print('ax.dist = {}'.format(ax.dist))
print('ax.elev = {}'.format(ax.elev))
plt.savefig(
'main_{}_{}_{}.png'.format(ax.azim, ax.dist, ax.elev),
format='png',
bbox_inches='tight'
)
不带参数运行将给出默认值:
ax.azim = -60
ax.dist = 10
ax.elev = 30
main_-60_10_30.png
![图片描述](https://istack.dev59.com/powCp.webp)
变化的参数:azim
方位角是绕z轴旋转,例如:
main_-60_10_30.png
![图片描述](https://istack.dev59.com/powCp.webp)
main_0_10_30.png
![图片描述](https://istack.dev59.com/603Oy.webp)
main_60_10_30.png
![图片描述](https://istack.dev59.com/YL67g.webp)
变化的参数:dist
dist
似乎是数据坐标中可见点到中心点的距离。
main_-60_10_30.png
![图片描述](https://istack.dev59.com/powCp.webp)
main_-60_5_30.png
![图片描述](https://istack.dev59.com/UP8PB.webp)
main_-60_20_-30.png
![图片描述](https://istack.dev59.com/cCN1J.webp)
变化的参数:elev
从这里我们可以了解到elev
是眼睛与xy平面之间的角度。
main_-60_10_60.png
![图片描述](https://istack.dev59.com/xu6Pg.webp)
main_-60_10_30.png
![图片描述](https://istack.dev59.com/powCp.webp)
main_-60_10_0.png
![图片描述](https://istack.dev59.com/JJIqa.webp)
main_-60_10_-30.png
![图片描述](https://istack.dev59.com/lBLg3.webp)
在matplotlib==3.2.2上进行测试。
%matplotlib notebook
。 - YvesgereY