首页 >> 大全

PYQT5+pyqtgraph 2d绘图实时刷新(坐标系跟着曲线一起移动

2023-12-29 大全 29 作者:考证青年

PYQT5+ 2d绘图实时刷新(坐标系跟着曲线一起移动,且可以查看绘制历史)的解决方法 总结荣书记嘎嘎乱杀

PYQT5中使用绘制实时2d曲线图时,希望坐标轴随着曲线一起移动,并可以查看历史绘制的曲线,官方demo有移动坐标轴的案例,但是不可拖动查看历史图像。

效果图

一、原理

中有一个用于定位坐标长度的函数

tdplot.setXRange(0 , 200)

如这个函数,我设置了x轴为0-200.

画坐标曲线的软件__绘制坐标系曲线的软件

那么要想实时跟随绘制的曲线,我的解决思路就是实时刷新这个函数到自己想要的数据对应的坐标轴上。

二、代码思路 1.引入变量i来记录每一次更新

每当有新的数据需要绘制时,就令 i 自增1,以此来达到记录数据个数的目的,当然也可以使用len(x)来运算得到。

2.固定坐标轴大小,并实时更新

设置一个需要的坐标长度

我们肯定需要一个固定现实的坐标轴,那么只要使用上面提到的函数即可固定到坐标轴。

代码如下:

if i > xrange:tdplot.setXRange(self.i - xrange, self.i)

_画坐标曲线的软件_绘制坐标系曲线的软件

if语句用于判断从0开始绘制的图像是否超过我们需要的坐标轴长度(图像是否到达最左边),如果超过,则会实时更新坐标轴

3缺点

当然这个方案不会十分完美,缺点就是在绘制时无法移动坐标轴,因为它每次数据更新都会回到当前坐标轴上,我的解决办法是:绘制时失能鼠标控制,当停止绘制时恢复鼠标控制。

代码如下:

tdplot.setMouseEnabled(x=True, y=False) # 启用x轴控制,失能y轴控制
tdplot.setMouseEnabled(x=False, y=False) # 鼠标xy都不能划动

总结

这个方案并不完美,也许您有需要在绘图过程中缩放的需求,我的建议是新增两个按钮来实现缩放功能,所使用的函数还是坐标设置函数,在其中添加一个比例变量即可。

本人技术有限,此方案并非完美,仅作为自己技术参考

荣书记嘎嘎乱杀

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了