pyqtgraph 中的动画图表

我正在用 pyqtchart 做我的第一次测试,但由于关于动画图表的文档很差,我遇到了一些问题。我构建了一个图表,显示了“sin”、“cos”和“tan”函数(近似切线的值),为了让它生效,我构建了一个线程,每次都清除并重新绘制图表。它有效,但我不知道这是正确的方法还是最有效的方法。我在github上找到了一个示例,但对我来说并不是很清楚。


我不明白这是否是“官方方式”,或者 pyqtgraph 是否提供了一些内置函数来自动化它。对于任何能给我一些建议的人,我都会非常感激。


这是我的代码:


from PyQt5.QtWidgets import *

from PyQt5.QtCore import QThread, pyqtSignal

import pyqtgraph as pg

import math

import numpy as np

import sys

import time


class Gui(QWidget):

    def __init__(self):

        super().__init__()

        self.setupUI()


    def setupUI(self):

        pg.setConfigOption('background', 0.95)

        pg.setConfigOptions(antialias=True)

        self.plot = pg.PlotWidget()

        self.plot.setAspectLocked(lock=True, ratio=0.01)

        self.plot.setYRange(-3, 3)

        self.widget_layout = QVBoxLayout()

        self.widget_layout.addWidget(self.plot)

        self.setLayout(self.widget_layout)


    def plot_data(self, data):

        self.plot.clear()

        self.plot.plot(range(0, 720), data[0], pen=pg.mkPen(color='g', width=2))

        self.plot.plot(range(0, 720), data[1], pen=pg.mkPen(color='r', width=2))

        self.plot.plot(range(0, 720), data[2], pen=pg.mkPen(color='y', width=2))


class Thread(QThread):

    sig_plot = pyqtSignal(list)

    def __init__(self):

        super().__init__()

        self.sig_plot.connect(gui.plot_data)


慕莱坞森
浏览 327回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python