Pyqtgraph 解决数据量太多卡顿问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言(整个工程在最后)

提示:这里可以添加本文要记录的大概内容:

例如:pyqtgraph 在大量数据绘制是,造成界面卡顿问题!该文章解决以90000w数据为例!


提示:以下是本篇文章正文内容,下面案例可供参考

解决方案

问题原因

1.造成卡顿的原因主要是绘制的数据量太多的原因,所以有效的解决办法是只绘制我们所见的一部分,通过sigRangeChanged信号,我们可以获取到实时的x区间和y区间的变化区间!所以在每次绘制时,需要重新选择我们需要绘制的点个数!

实时检测x,y区间代码如下所示

 def updateRegion(self, a, lineshow):
 		self.widget.sigRangeChanged.connect(self.updateRegion)
        self.showminx = lineshow[0][0]
        self.showmaxx =lineshow[0][1]

绘制取点区间代码

本段代码中,self。data 为我们的数据,主要意思就是将显示区间内的数据先去出来

self.data_for_draw = self.data[0 if self.showminx < 0 else int(self.showminx):1 if self.showmaxx < 1 else int(self.showmaxx + 5) ].copy()

当我们实现以上发现,当我们查看整个视图时,任然会出现卡顿,这是我做了 间隔取点处理,保证我们整个视角中 只需要绘制N个点,这里我使用了一个Spinbox;

以下是我间隔取点的代码

def showfunc(self, num):
    a = int(abs(self.showminx - self.showmaxx) // self.spinBox.value())
    return num[::a + 1]

可以更加优化,当我在间隔取点时,容易造成某些极值点的丢失,可能会出现一写视觉上的误差,对数据本身没太大影响!(放大一样能看到)

在这里插入图片描述
非常的丝滑

代码在此,请下载后不要忘了点个赞!

https://download.csdn.net/download/CxzKkgg/85048093

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tbbei.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值