【python】使用pyqtgraph+pyserial提高绘图效率的方法

博客围绕从串口读取传感器数据并实时绘图展开。原方案采用子进程分别读取数据和绘图,用队列交换数据,但绘图进程效率跟不上读取进程。解决方案是在绘图进程中批次读取队列数据,提升了效率,避免队列积压。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于pyqtgraph的高速采样和绘图

背景

使用场景为从串口读取传感器数据,并实时绘图,如下图所示:采样率为600Hz,采用子进程的方式分别进行读取数据和绘图,进程之间使用python自带的队列queue.Queue进行数据交换,每读取到一个数据就加入到队列中。

高速采样并绘图-改进前

结果发现绘图进程的执行效率跟不上串口读取的进程,count和iVS分别表示读串口进程和绘图进程处理的数据个数,两者差别越来越大。

解决方案

在绘图进程中加入以下代码,通过批次读取队列数据(此处为100个),提升了效率,避免队列积压数据。

size = 100
if q.qsize() > size:
    for _ in range(size):

改进后的结果如下图所示:

高速采样并绘图-改进后


可以看到,绘图的刷新速度大大提升,处理速度iVS和产生数据的速度count基本相等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值