PyQt5 Pyqtgraph 绘图离散

PyQt5 Pyqtgraph plot discret

目前,对于这个项目,我正在使用 matplolib 来跟踪我的情节。 不过,我希望在 pyqtgraph ( Pyqt5 ) 上进行转换。 我没有发现如何使用 pyqtgraph 跟踪 FFT 的离散图,与图片相同。 你有想法吗?

您可以创建一个画有垂直线的项目:

from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg

class LinePlot(pg.GraphicsObject):
    def __init__(self, data):
        super(LinePlot, self).__init__()
        self._data = []
        self.setData(data)

    def setData(self, data):
        self._data = data
        self.generate()

    def generate(self):
        self.picture = QtGui.QPicture()
        p = QtGui.QPainter(self.picture)
        p.setPen(pg.mkPen('r', width=2))
        for (t, v) in self._data:
            if v != 0:
                p.drawLine(QtCore.QPointF(t, 0), QtCore.QPointF(t, v))

    def paint(self, p, *args):
        p.drawPicture(0, 0, self.picture)

    def boundingRect(self):
        return QtCore.QRectF(self.picture.boundingRect())

if __name__ == '__main__':
    import sys
    import random

    app = QtGui.QApplication(sys.argv)
    w = QtGui.QMainWindow()
    view = pg.GraphicsLayoutWidget()
    w.setCentralWidget(view)
    plot = view.addPlot()
    vals = [(i, random.randint(0, 255)) for i in range(30)]
    plot.addItem(LinePlot(vals))
    w.show()
    sys.exit(app.exec_())