【问题标题】:PyQt5 Pyqtgraph plot discretPyQt5 Pyqtgraph 绘图离散
【发布时间】:2019-04-16 10:52:26
【问题描述】:

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

【问题讨论】:

    标签: python pyqt pyqt5 pyqtgraph


    【解决方案1】:

    您可以创建一个在其中绘制垂直线的项目:

    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_())
    

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 2018-10-08
      • 2018-07-19
      • 2019-02-02
      • 2019-03-03
      • 2013-05-17
      • 2017-12-08
      • 2011-02-05
      • 2018-09-28
      相关资源
      最近更新 更多