QChart动态生成图表(曲线)

利用QChart来实现动态插入数据显示图表。

通过串口连接单片机,每0.5秒读取一次相位值,然后将每次读取到的数据显示到图表中。

代码在最后。

效果如下

动态曲线图

总体架构:QChart   ------->   QChartView   <-------  QWidget

pro文件写法

首先,需要新建一个C++类(包含.h文件和.cpp文件),继承QChart类

其次,声明一些必要的变量

设置图表的一些样式比如说颜色,线宽之类的。

将图表进行数据初始化

因为需要0.5秒产生一个数据,因此需要构造一个定时器

使用随机函数生成一组数据,并加入到series中

将图表显示出来。

 

最终效果如下

随机数动态图像

 

源文件下载地址:

https://download.csdn.net/download/phr_nick/11288985

我是IT界的小学生,欢迎大家批评指正。么么哒!

PyQtChart是PyQt5的一个模块,可以用于绘制各种图表,包括曲线图。下面是一个使用PyQtChart动态绘制曲线的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtChart import QChart, QChartView, QLineSeries from PyQt5.QtCore import Qt, QThread, QTimer, pyqtSignal import random class DataGenerator(QThread): update_data = pyqtSignal(float, float) def run(self): x = 0 y = 50 while True: x += 1 y = y + random.randint(-5, 5) self.update_data.emit(x, y) self.msleep(1000) class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Dynamic Chart') self.setGeometry(100, 100, 800, 600) self.chart = QChart() self.chart.setTitle('Dynamic Chart') self.chart.setAnimationOptions(QChart.SeriesAnimations) self.series = QLineSeries() self.chart.addSeries(self.series) self.axis_x = self.chart.createDefaultAxes() self.axis_x.setRange(0, 100) self.axis_y = self.chart.createDefaultAxes() self.axis_y.setRange(0, 100) self.chart_view = QChartView(self.chart) self.setCentralWidget(self.chart_view) self.data_generator = DataGenerator() self.data_generator.update_data.connect(self.update_chart_data) self.data_generator.start() def update_chart_data(self, x, y): if len(self.series) > 100: self.series.removePoints(0, 1) self.series.append(x, y) if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_()) ``` 在这个示例代码中,我们使用了一个`DataGenerator`线程来生成随机数据,并通过`update_data`信号将数据发送给主线程。主线程收到数据后,调用`update_chart_data`方法更新曲线图。曲线图使用了`QLineSeries`类来表示,数据更新时通过`append`方法添加新的数据点,如果数据点已经超过100个,则通过`removePoints`方法删除最早的数据点。`QChartView`类用于显示曲线图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值