微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何实时更新QChartPyQt5?

如何解决如何实时更新QChartPyQt5?

我必须使用QChart绘制传入的数据流。

要检查我已实现的代码,我获取一个带有时间序列数据的csv文件,该文件会定期读取并附加到QLineseries中。该系列已添加到QChart中。但是,在运行代码后,该图完全无法显示

class Window(QMainWindow):
    def __init__(self,*args,**kwargs):
        super(Window,self).__init__()
        self.maxLen =  int(frame_rate*time_window) 
        self.data = []
        self.source = source

        chart = QChart()
        self.series = QLineseries(self)
        chart.addSeries(self.series)
        chart.createDefaultAxes()
        chart.setAnimationoptions(QChart.SeriesAnimations)

        chartview = QChartView(chart)
        chartview.setRenderHint(QtGui.QPainter.Antialiasing)
        self.setCentralWidget(chartview)

        self.count = 0

    def update(self):

        new_data = source.iloc[self.count,4]

        if len(self.data) > self.maxLen:
            self.data= self.data[1:]

        self.data.append((self.count,new_data))

        self.series = list(self.data)

        App.processEvents()
        self.count += 1

if __name__ == '__main__':

    time_window = 5 #secs
    frame_rate = 20
    source = pd.read_csv('source.csv')

    App = QApplication(sys.argv)
    plot = Window(time_window,frame_rate,source)
    plot.show()
    graphUpdateSpeedMs = 1000/frame_rate
    timer = QtCore.QTimer()
    timer.timeout.connect(plot.update)
    timer.start(graphUpdateSpeedMs)
    App.instance().exec_()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。