Matplotlib生成三维散点图

       Matplotlib 绘制 3D 图像主要通过 mplot3d 模块实现,但由于三维图像实际上是在二维画布上展示,因此同样需要载入 pyplot 模块。

       mplot3d 模块下主要包含 4 个大类,分别是:

       * mpl_toolkits.mplot3d.axes3d():包含各种实现绘图的类和方法
       * mpl_toolkits.mplot3d.axis3d():包含坐标轴相关的类和方法
       * mpl_toolkits.mplot3d.art3d():包含2D转换并用于3D绘制的类和方法
       * mpl_toolkits.mplot3d.proj3d():其他的一些方法,如计算三维向量长度等

       一般情况下我们用到最多的是 axes3d() 中的axes3d.Axes3D() 类,Axes3D() 类下面存在散点图、线形图、柱状图、曲线图等各种制图方式。

采用matplotlib生成散点图

       首先,导入必须的模块

# 导入pandas、pyplot、Axes3D模块
import pandas as pd
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 

       第二步,数据处理

# 用pandas模块读取Excel文件,并分别生成X轴(lng,经度)、Y轴(lat,纬度)、Z轴(sj,时间)
data = pd.read_excel('D:/pythondata/test.xlsx') 
lng = pd.DataFrame(data,columns = ['经度'])
lat = pd.DataFrame(data,columns = ['纬度'])
sj = pd.DataFrame(data,columns = ['时间'])

       第三步:绘图

# 生成画布、3D图形对象、三维散点图
fig = plt.figure() 
ax = Axes3D(fig) 
ax.scatter(lng,lat,time) 

# 设置坐标轴显示以及旋转角度
ax.set_xlabel('lng') 
ax.set_ylabel('lat')
ax.set_zlabel('time')
ax.view_init(elev=10,azim=235)
plt.show()

你可能感兴趣的:(Matplotlib生成三维散点图)