PYQT5+matplotlib实时绘制三维动态曲线图

该博客介绍了如何使用PyQT5界面结合matplotlib库,实现实时从串口获取数据并绘制三维动态曲线图。在PyQT5界面中,通过初始化线程、设置定时器和数据库连接,动态更新图像。点击Start按钮启动定时器,每隔100ms更新一次图像。同时,提供了一个PrintBtn按钮用于调试,显示队列中的数据。
摘要由CSDN通过智能技术生成

参考链接:https://blog.csdn.net/weixin_43008870/article/details/92173542

打开pyqt5界面之前,需要验证串口连接,mysql连接 ,定时器,线程,等一系列准备工作的初始化。
点击Init按钮会读取串口来的数据,存入全局队列中,队列大小固定100,每次删除最原始的数据,同时另一端插入最新数据
点击Start按钮,会开启定时器,每隔100ms根据队列来实时更新数据图像
点击PrintBtn按钮,会在后台打印三个队列中的数据,及大小,主要为了方便调试
点击End按钮,停止计时器,退出线程,回收资源

目录

  • pyqt5
  • 准备工作
  • 初始化线程
  • 数据更新
  • 定时器工作
  • 数据库
  • PrintBtn部分

pyqt5

代码如下:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1184, 862)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setObjectName("pushButton_5")
        self.gridLayout.addWidget(self.pushButton_5, 0, 4, 1, 1)
        self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout.addWidget(self.pushButton_3, 0, 2, 1, 1)
        self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_4.setObjectName("pushButton_4")
        self.gridLayout.addWidget(self.pushButton_4, 0, 3, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 0, 1, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_2.addWidget(self.groupBox, 1, 0, 1, 1)
        self
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值