Python 实时绘制曲线图
从下位机( stm32 )串口收到的数据,如何用 python 实时绘制曲线图,该用什么库?
数据是时间和云台角度的关系,time-pitch。
求指教一番。
Python 实时绘制曲线图
8 回复
试一试 matplotlib?
要实时绘制曲线图,可以用 matplotlib 的动画功能。这里给个完整例子,每秒更新一次随机数据:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
from collections import deque
# 设置数据缓冲区
max_points = 50
data = deque([0]*max_points, maxlen=max_points)
# 创建图形
fig, ax = plt.subplots()
line, = ax.plot(data)
# 配置坐标轴
ax.set_ylim(-1, 1)
ax.set_xlim(0, max_points-1)
def update(frame):
# 生成新数据点
new_value = np.random.randn()
data.append(new_value)
# 更新曲线
line.set_ydata(data)
line.set_xdata(range(len(data)))
return line,
# 创建动画(每秒更新一次)
ani = animation.FuncAnimation(fig, update, interval=1000, blit=True)
plt.show()
关键点:
- 用
deque做数据缓冲区,自动保持固定长度 FuncAnimation负责定时更新blit=True只重绘变化部分,提升性能
如果数据量大,考虑用 plotly 或 pyqtgraph,它们对实时绘图优化更好。
总结:用matplotlib动画加数据缓冲区就能搞定实时绘图。
那么想写代码么,有的串口自带画图功能,自定义个解析就行了啊。
具体搜下吧,关键词,uart graph

matplotlib
用 highcharts 或者 echarts
我瞅瞅
matplotlib+1
加 GUI 用 qt
PyQwt、PyQtGraph、PyQtChart
PyQt4 的话推荐 PyQwt
PyQt5 的话推荐 PyQtChart,这个是官方的,而且是 C++写的,,稳定、可靠、执行效率高,,最看好这个,,缺点是资料可能比较少,,

