Python3+PyQt5+QtChart 实现简单的实时更新曲线图

这篇博客介绍了如何利用Python3、PyQt5的QtChart模块来创建一个实时更新的Y轴单曲线图,X轴为实时时间轴。文章详细阐述了QChart、QSplineSeries和QValueAxis等关键类的功能,并提供了简单的代码示例,展示了如何实现这样一个实时曲线图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QtChart实现Y轴单曲线,X轴实时时间轴

前言

练手做个实时曲线,以演示采集到的数据。参考了https://www.jianshu.com/p/2c584fa2e469的文章。

准备工作

首先,通过QT的帮助文档了解下QChart、QSplineSeries(或者其他的Series类)、QValueAxis等类的描述。
QChart
QChart是一个可以在QGraphicsScene中显示的QGraphicsWidget。它管理不同类型的系列和其他图表相关对象(如图例和轴)的图形表示。要简单地在布局中显示图表,可以使用便利类QChartView代替QChart。此外,直线、平滑曲线、面积和散射图可以通过QPolarChart类来表示为极坐标图。
QSplineSeries
一个spline series存储QPainterPath绘制平滑曲线所需的数据点和段控制点。当数据发生变化时,控制点会自动计算。该算法对点进行计算,以便绘制平滑曲线。
QValueAxis
可以设置一个值轴来显示带有标记、网格线和阴影的轴线。在轴上的值是在标记的位置绘制的。
QDateTimeAxis
可以设置QDateTimeAxis来显示带有标记标记、网格线和阴影的轴线。可以通过设置适当的DateTime格式来配置轴线上显示的值。QDateTimeAxis可以表示公元前4714年到公元287396年之间的时间。关于其他与QDateTime相关的信息,请参阅QDateTime文档。
*void QChart::addSeries(QAbstractSeries series)
将series添加到chart中,并且chart获得series的所有权,即chart成为series的parent。
*void QChart::addAxis(QAbstractAxis axis, Qt::Alignment alignment)
将坐标轴添加到图表中的指定的位置(左边,下方,右边,上方)。这个chart获得坐标轴的所有权。
*bool QAbstractSeries::attachAxis(QAbstractAxis axis)
将指定的坐标轴附加给series。
如果成功,返回true,否则,返回false

代码实现

一个简单的演示实时曲线图,可直接运行。``

import sys
import random
from PyQt5.QtChart import QDateTimeAxis,QValueAxis,QSplineSeries,QChart,QChartView
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QPainter
from PyQt5.QtCore import QDateTime,Qt,QTimer


class ChartView(QChartView,QChart):
    def __init__(self, *args, **kwargs):
        super(ChartView, self)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值