我正在用 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)
相关分类