1、问题描述
最近在使用pyqt5和pyqtgraph做界面,主要功能为:根据实时收集到的数据绘制折线图。我采用的方案为pyqtgraph的example的Scrolling Plots实现滚动画图,示例为下图二行二列位置。
一开始刚运行的时候,显示良好,但是当时间久了问题就出现了:由于窗口大小固定,随着时间的推移,数据量越来越多,折线之间的距离越来越近,会变得十分稠密,影响显示效果和使用者的体验。
我的设想为:当数据量较少时(刚开始运行不久),正常绘制更新。而当数据量较大的时候,图形照常绘制,但是横轴坐标随着数据更新而平移,每次只在整个窗口显示50个点所绘制的折线图,保持线与线之间的合理距离,从而不影响使用者感官。
2、解决办法
既然思想已经确定,那就开始干吧。具体代码如下:
def __init__(self, qSystem):
# self.guiplot_consensus为UI界面中的GraphicsLayoutWidget,是在qtdesigner中布局设置好的,此处不做赘述。
self.p1 = self.guiplot_consensus.addPlot(title="Consensus Time"