pyqt读取csv文件并对多道数据进行动态展示

# @Time    : 2023/5/12 8:56
# @Author  : Ecoboy
# @File    : show_signal.py
# Code statement :
import pyqtgraph as pg
import numpy as np
from pyqtgraph.Qt import QtGui
import pandas as pd
from collections import deque


def get_data_from_cvs():
    data = pd.read_csv("230429_105821.csv")  # csv文件名
    return data


def update():
    global ptr1
    curve1.setData(data_channel1[ptr1:ptr1 + end_signal])
    curve2.setData(data_channel2[ptr1:ptr1 + end_signal])
    curve3.setData(data_channel3[ptr1:ptr1 + end_signal])
    curve4.setData(data_channel4[ptr1:ptr1 + end_signal])
    #x轴随着数据的前进而前进
    curve1.setPos(ptr1, 0)
    curve2.setPos(ptr1, 0)
    curve3.setPos(ptr1, 0)
    curve4.setPos(ptr1, 0)
    ptr1 += 1


if __name__ == '__main__':
    win = pg.GraphicsLayoutWidget(size=(1200, 600), show=True)
    win.setWindowTitle('信号监测')
    p1 = win.addPlot(0, 0, title="channel1")  # 添加Plot显示窗体
    p2 = win.addPlot(1, 0, title="channel2")
    p3 = win.addPlot(2, 0, title="channel3")
    p4 = win.addPlot(3, 0, title="channel4")

    p1.showGrid(x=True, y=True)
    p2.showGrid(x=True, y=True)
    p3.showGrid(x=True, y=True)
    p4.showGrid(x=True, y=True)

    end_signal = 200  # 一个折线图一次性出现几个信号
    ptr1 = 0      #ptr1是x轴原点位置,这里定义了update函数才能使用

    data = get_data_from_cvs()  #这里的data数据类型是pandas.core.frame.DataFrame数据类型,后面可以直接根据列名获取一列数据

    data_channel1 = np.array(data['ch1'])
    data_channel2 = np.array(data['ch5'])
    data_channel3 = np.array(data['ch9'])
    data_channel4 = np.array(data['ch15'])

    curve1 = p1.plot(data_channel1[ptr1:end_signal])
    curve2 = p2.plot(data_channel2[ptr1:end_signal])
    curve3 = p3.plot(data_channel3[ptr1:end_signal])
    curve4 = p4.plot(data_channel4[ptr1:end_signal])

    # 利用时间函数使图像动起来,每隔一段时间进行一次更新
    timer = pg.QtCore.QTimer()
    timer.timeout.connect(update)
    timer.start(50)  #数据更新速度

    QtGui.QApplication.instance().exec_()

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扮作大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值