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()

关键点:

  1. deque 做数据缓冲区,自动保持固定长度
  2. FuncAnimation 负责定时更新
  3. blit=True 只重绘变化部分,提升性能

如果数据量大,考虑用 plotlypyqtgraph,它们对实时绘图优化更好。

总结:用matplotlib动画加数据缓冲区就能搞定实时绘图。

那么想写代码么,有的串口自带画图功能,自定义个解析就行了啊。
具体搜下吧,关键词,uart graph

![]( )

matplotlib

用 highcharts 或者 echarts

matplotlib+1
加 GUI 用 qt

PyQwt、PyQtGraph、PyQtChart
PyQt4 的话推荐 PyQwt
PyQt5 的话推荐 PyQtChart,这个是官方的,而且是 C++写的,,稳定、可靠、执行效率高,,最看好这个,,缺点是资料可能比较少,,

回到顶部