1、創建三維坐標軸對象Axes3D
創建Axes3D主要有兩種方式,一種是利用關鍵字projection='3d'來實現,另一種是通過從mpl_toolkits.mplot3d導入對象Axes3D來實現,目的都是生成具有三維格式的對象Axes3D
#figure:新的畫布 fig=plt.figure() #axes:坐標軸 ax1=plt.axes(projection='3d') #ax=fig.add_subplot(111,projection='3d')#畫子圖 plt.show() #方法二,利用三維軸 fig=plt.figure() ax2=Axes3D(fig)
2、三維曲線和散點
#三維曲線和散點 z=np.linspace(0,13,1000) x=5*np.sin(z) y=5*np.cos(z) zd=13*np.random.random(100) xd=5*np.sin(zd) yd=5*np.cos(zd) ax1.scatter3D(xd,yd,zd,cmap='Blues')#繪制散點圖 ax1.plot3D(x,y,z,'gray') #繪制空間曲線 plt.show()
3、三維曲面
import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax3=plt.axes(projection='3d') #定義三維數據 XX=np.arange(-5,5,0.5) YY=np.arange(-5,5,0.5) X,Y=np.meshgrid(XX,YY) Z=np.sin(X)+np.cos(Y) #作圖 ax3.plot_surface(X,Y,Z,cmap='rainbow') ax3.contour(X,Y,Z,zdim='z',offset=-2,cmap='rainbow') #等高線圖,要設置offset,為Z的最小值 plt.show()
可以通過在plot_surface中設置參數rstride、cstride設置步長,來得到更加清晰細膩的圖像。這兩個參數分別表示在橫豎方向上的采樣步長,越小繪圖越精細。
ax3.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap='rainbow')