import numpy as np import matplotlib.pyplot as plt #导入库 from mpl_toolkits.mplot3d import Axes3D fig=plt.figure(figsize=(12,6)) ax=Axes3D(fig) X,Y=np.mgrid[-3:3:100j,-3:3:100j] #生成X轴/Y轴的数据列表,并进行格网化 Z=np.exp(-X**2-Y**2) #计算函数值 surf=ax.plot_surface(X,Y,Z ,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))#设置行和列的跨度 ax.set_zlim(-0.1,1) #设置z轴的范围 ax.set_xlabel('x') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.title('$z=exp(-x^2/2-y^2/2)$的三维图形') #设定标题 fig.colorbar(surf,shrink=0.5,aspect=5) plt.savefig('test',dpi=600) #设置保持地点,dpi:清晰度 plt.show() 这段代码演示了如何使用 Matplotlib 创建一个三维图形,并绘制了函数 $z = e^{-\frac{x^2}{2} - \frac{y^2}{2}}$ 的图形。让我解释一下这个过程: 1. 导入必要的库:首先导入了 NumPy 和 Matplotlib 库,以及 Matplotlib 的 3D 绘图工具 Axes3D。 2. 创建图形和坐标轴:使用 `plt.figure()` 创建一个图形对象,并通过 `Axes3D()` 创建一个三维坐标轴对象。 3. 生成数据:使用 `np.mgrid` 生成 X、Y 坐标的网格数据,范围为 -3 到 3,共 100 个点。然后根据函数 $z = e^{-\frac{x^2}{2} - \frac{y^2}{2}}$ 计算对应的 Z 值。 4. 绘制三维图形:使用 `plot_surface()` 方法绘制三维曲面图,设置了行和列的跨度以及颜色映射。然后通过 `set_zlim()` 设置了 Z 轴的范围。 5. 设置坐标轴标签和标题:使用 `set_xlabel()`、`set_ylabel()` 和 `set_zlabel()` 分别设置 X、Y、Z 轴的标签,使用 `plt.title()` 设定图形的标题。 6. 添加颜色条:使用 `colorbar()` 添加颜色条,并通过 `shrink` 和 `aspect` 参数调整颜色条的大小和比例。 7. 显示和保存图形:最后使用 `plt.show()` 显示图形,并通过 `plt.savefig()` 将图形保存为名为 'test' 的文件,设置了 dpi 参数为 600,以提高图像的清晰度。
学python绘制三维图形
于 2022-12-17 16:32:38 首次发布