pyqtgraph清空画布

时间:2025-02-11 13:27:18

有一个场景,实时检测数据并做实时绘图,应为实时绘图时,数据量太大会导致pyqtgraph界面无响应,这时候要每隔一段时间本地化保存一下数据,并清空当前画布,应为画布中有十字交叉线,清空画布时,不想将其也清除掉,另外还有一点就是,清空画布属于耗时操作,最好放到线程中执行,不然每次清空时,都会出现ANR,一段时间后会恢复

pyqtgraph源代码中有两个清除操作,分别如下:

clear()方法会清除plot上的所有item,包括图例,以及自定义的十字交叉线等等

而clearPlots()方法只会清除当前的绘画点,其他的item会保留,根据自己的需求适当应用

def clear(self):
    """
    Remove all items from the PlotItem's :class:`~`.
    """
    for i in [:]:
        (i)
     = {}
def clearPlots(self):
    for i in [:]:
        (i)
     = {}     

代码参考:

 = (show=True)                       
 = (justify='right')                          

() 

self.plot_plt = (row=1, col=0)

# 清空操作
# self.plot_plt.clear()                         # 清空绘画-->会清空所有,比如图例,十字交叉线
# self.plot_plt.clearPlots()                    # 清空绘画-->只会清空当前的绘图