> 日常维修
python 100天 96 画一个汉堡
如下要画一个三维的图形
先画一个3d坐标
import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = Axes3D(fig)
生成坐标数据 生成 X Y Z 坐标
X = np.arange(-4, 4, 0.25)Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y)R = np.sqrt(X ** 2 + Y ** 2)Z = np.sin(R)
mplot3d包中的plot_surface函数要求参数X、Y和Z是二维数组。plot_surface是绘制表面的正确函数吗?如何将数据转换为所需的格式?
接着画这个图形
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)ax.contourf(X, Y, Z, zdir=&39;, offset=-2, cmap=plt.cm.hot)ax.set_zlim(-2, 2)
最后 看效果
完整的程序如下
&39;&39;&39;import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = Axes3D(fig)X = np.arange(-4, 4, 0.25)Y = np.arange(-4, 4, 0.25)X, Y = np.meshgrid(X, Y)R = np.sqrt(X ** 2 + Y ** 2)Z = np.sin(R)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)ax.contourf(X, Y, Z, zdir=&39;, offset=-2, cmap=plt.cm.hot)ax.set_zlim(-2, 2)plt.show()