? ? ? ?Matplotlib 繪制 3D 圖像主要通過 mplot3d 模塊實現(xiàn)问词,但由于三維圖像實際上是在二維畫布上展示,因此同樣需要載入 pyplot 模塊代箭。
? ? ? ?mplot3d 模塊下主要包含 4 個大類,分別是:
? ? ? ?* mpl_toolkits.mplot3d.axes3d():包含各種實現(xiàn)繪圖的類和方法
? ? ? ?* mpl_toolkits.mplot3d.axis3d():包含坐標軸相關(guān)的類和方法
? ? ? ?* mpl_toolkits.mplot3d.art3d():包含2D轉(zhuǎn)換并用于3D繪制的類和方法
? ? ? ?* mpl_toolkits.mplot3d.proj3d():其他的一些方法,如計算三維向量長度等
? ? ? ?一般情況下我們用到最多的是 axes3d() 中的axes3d.Axes3D() 類唬涧,Axes3D() 類下面存在散點圖、線形圖盛撑、柱狀圖碎节、曲線圖等各種制圖方式。
采用matplotlib生成散點圖
? ? ? ?首先抵卫,導(dǎo)入必須的模塊
# 導(dǎo)入pandas狮荔、pyplot、Axes3D模塊
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
? ? ? ?第二步介粘,數(shù)據(jù)處理
# 用pandas模塊讀取Excel文件殖氏,并分別生成X軸(lng,經(jīng)度)姻采、Y軸(lat雅采,緯度)、Z軸(sj,時間)
data = pd.read_excel('D:/pythondata/test.xlsx')
lng = pd.DataFrame(data,columns = ['經(jīng)度'])
lat = pd.DataFrame(data,columns = ['緯度'])
sj = pd.DataFrame(data,columns = ['時間'])
? ? ? ?第三步:繪圖
# 生成畫布婚瓜、3D圖形對象宝鼓、三維散點圖
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(lng,lat,time)
# 設(shè)置坐標軸顯示以及旋轉(zhuǎn)角度
ax.set_xlabel('lng')
ax.set_ylabel('lat')
ax.set_zlabel('time')
ax.view_init(elev=10,azim=235)
plt.show()