单幅绘图中的PyQt5 pyqtgraph曲线(添加/删除)

时间:2019-02-21 09:36:32

标签: pyqt5 pyqtgraph

我是pyqt5的新手,只是在寻找方向。

在单个pyqtgraphics PlotItem图形中,我想添加/删除可配置的PlotCurveItems。 我从QWidgetList项目开始,但似乎无法为我提供添加具有多个配置的相同ListItem-> function的功能。

下一步,我正在研究使用参数树,但是不确定是否只是使事情变得更复杂。 最终,我想使用PlotItem.addItem()运行可配置的函数/方法,并查看我添加的可以删除或重新配置的项目的列表。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可能会在这里找到想要的东西:

import pyqtgraph.examples
pyqtgraph.examples.run()

基本上,您可以按照以下步骤创建图:

from PyQt5.QtGui import* 
from PyQt5.QtCore import*
import pyqtgraph as pg
import numpy as np
import sys

class MyWidget(QWidget):
    def __init__(self, parent=None):
        super(MyWidget, self).__init__(parent)
        self.win = pg.GraphicsWindow()
        self.p = []
        self.c = []
        for i in range(3):
            self.p.append(self.win.addPlot(row=i, col=0))
            for j in range(2):
                self.c.append(self.p[-1].plot(np.random.rand(100), pen=3*i+j))
        self.update()
        self.del_curve()
        self.add_curve()

    def update(self): # update a curve
        self.c[3].setData(np.random.rand(100)*10)

    def del_curve(self): # remove a curve
        self.c[5].clear()

    def add_curve(self): # add a curve
        self.c.append(self.p[2].plot(np.random.rand(100)))

def startWindow():
    app = QApplication(sys.argv)
    mw = MyWidget()
    app.exec_()

if __name__ == '__main__':
    startWindow()