admin管理员组

文章数量:819700

Python绘制3D图形:Axes3D

1

3D图形绘制需要(x,y,z)三组值,下面通过numpy和Axes3D函数会议3D图形。其中Axes3D是mpl_toolkits.mplot3d中的一个绘图函数,mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包。

2.mpl_toolkits.mplot3d导入方式如下:

或者:from mpl_toolkits.mplot3d import *
或者:from mpl_toolkits.mplot3d import Axes3D
或者:import mpl_toolkits.mplot3d as p3d

绘图

第一步需要导入numpy,matplotib.pyplot和Axes3D函数:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #这里只是用Axes3D函数,所以只导入了Axes3D

第二步建立画布,生成数据:
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-8,8,0.25) # 生成数据
y=np.arange(-8,8,0.25)

x,y=np.meshgrid(x,y) #生成x,y轴数据
r=np.sqrt(x2+y2)
z=np.sin®/r #生成z值

第三步绘图

ax.plot_surface(x,y,z,rstride=1,cstride=1)
ax.contourf(x,y,z,zdir=‘z’,offset=-2)
plt.show()

整个源代码如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D    #这里只是用Axes3D函数,所以只导入了Axes3D
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-8,8,0.25)     # 生成数据
y=np.arange(-8,8,0.25)
x,y=np.meshgrid(x,y)   #生成x,y轴数据
r=np.sqrt(x**2+y**2)
z=np.sin(r)/r                 #生成z值
ax.plot_surface(x,y,z,rstride=1,cstride=1)
ax.contourf(x,y,z,zdir='z',offset=-2)
plt.show()

结果如下:

本文标签: Python绘制3D图形Axes3D