🗺️ 用 Plotly 可视化特斯拉驾驶数据轨迹(含地图轨迹图)
数据再多,看不见就无法掌握。特斯拉每天都在上传数百万公里的驾驶数据,工程师如何可视化轨迹、分析路线、识别异常?本篇我们将使用 Plotly 构建一个交互式轨迹图,用于展示车辆 GPS 行驶路径 + 速度热力图。
🎯 一、目标
我们将实现一个 带颜色编码的轨迹地图,颜色表示速度(或能耗),结构如下:
车辆 GPS 轨迹(经纬度序列)
↓
Plotly 渲染地图
↓
颜色深浅 = 速度快慢(或单位能耗高低)
💻 二、安装依赖
pip install pandas plotly
📍 三、生成模拟驾驶轨迹数据
import pandas as pd
import numpy as np
# 模拟 60 个 GPS 点(广州某地段)
lat0, lon0 = 23.1291, 113.2644
n = 60
np.random.seed(42)
lat = lat0 + np.cumsum(np.random.normal(0.0001, 0.00005, n))
lon = lon0 + np.cumsum(np.random.normal(0.00015, 0.00005, n))
speed = np.abs(np.random.normal(40, 10, n)) # km/h,模拟车速
df = pd.DataFrame({
"lat": lat,
"lon": lon,
"speed": speed
})
🧭 四、使用 Plotly 生成轨迹图(彩色编码)
import plotly.express as px
fig = px.scatter_mapbox(
df,
lat="lat",
lon="lon",
color="speed",
color_continuous_scale="Viridis",
size_max=10,
zoom=14,
mapbox_style="open-street-map",
title="🚗 特斯拉车辆轨迹 & 速度分布图"
)
fig.show()
📊 五、运行结果说明
- 每个点为一次 GPS 记录
- 颜色越浅 → 速度越快
- 可用鼠标缩放、拖动、查看经纬度与速度
- 地图底层为 OpenStreetMap,可自由更换
🔍 六、进阶功能建议(可拓展)
| 功能 | 实现方式 |
|---|---|
| 轨迹连线 | 改用 px.line_mapbox() |
| 显示时间轴 | 添加 timestamp 字段 + 滑动条 |
| 添加停车点识别 | 判断 speed ≈ 0 连续点,打红点 |
| 能耗热力图 | 用单位能耗代替 speed 字段 |
❌ 七、容易出错点分析
| 问题 | 描述 | 建议 |
|---|---|---|
| 坐标跳变 | GPS 测量误差 | 使用滤波平滑,如卡尔曼滤波或滑窗均值 |
| 轨迹方向错乱 | 数据未按时间排序 | 保证数据时间顺序一致 |
| 地图打不开 | Plotly 默认使用 Mapbox | 可设置为 "open-street-map"(免费) |
✅ 总结
你已掌握:
- 如何构建车辆轨迹地图可视化
- 使用 Plotly 绘制彩色编码路径图
- 如何用颜色展示速度、能耗等属性
下一篇我们将继续深入:
特斯拉异常驾驶行为识别系统设计(含 Python 实例)