搜索
写经验 领红包

python 100天 96 画一个汉堡

如下要画一个三维的图形

python 100天 96 画一个汉堡

先画一个3d坐标

python 100天 96 画一个汉堡

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)

最后 看效果

python 100天 96 画一个汉堡

完整的程序如下

&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()