資料視覺化神器matplotlib學習之路(四)
阿新 • • 發佈:2019-01-14
今天畫一下3D影象,首先的另外引用一個包 from mpl_toolkits.mplot3d import Axes3D,接下來畫一個球體,首先來看看球體的引數方程吧
(0≤θ≤2π,0≤φ≤π)
然後就可以上程式碼了:
from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D a = np.linspace(0, np.pi*2, 20) b = np.linspace(0, np.pi, 20) A, B = np.meshgrid(a, b)#這裡要注意一下,需要給對應的網格點轉換成座標矩陣 X = np.sin(A)*np.cos(B)#x座標 Y = np.sin(A)*np.sin(B)#y座標 Z = np.cos(A)#z座標 fig = plt.figure() ax = Axes3D(fig)#新增3D圖 ax.plot_surface(X, Y, Z, cmap='rainbow')#畫球體 ax.contourf(X, Y, Z, zdir='z', #投影到z座標,也可以是x,y offset=-1.2, #投影到座標值為-1.2的平面上 cmap='rainbow') #設定各個座標範圍 ax.set_zlim((-1.2, 1.2)) ax.set_xlim((-1.2, 1.2)) ax.set_ylim((-1.2, 1.2)) plt.show()
大功告成!