1. 程式人生 > >資料視覺化神器matplotlib學習之路(四)

資料視覺化神器matplotlib學習之路(四)

今天畫一下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()

大功告成!