使用PyQtGraph绘制数据滚动图形(3)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import pyqtgraph as pg import numpy as np from pyqtgraph.Qt import QtGui, QtCore app = pg.QtGui.QApplication([]) win = pg.GraphicsWindow(title = "数据滚动" ) win.resize( 600 , 300 ) p = win.addPlot() data = np.random.random(size = 50 ) curve = p.plot(data) def update(): global data, curve data[: - 1 ] = data[ 1 :] #数据向左滚动1位,也可以用data = np.roll(data,-1)实现 data[ - 1 ] = np.random.random() #末位更改为随机值 curve.setData(data) timer = QtCore.QTimer() timer.timeout.connect(update) timer.start( 100 ) app.exec_() |
上面的图形,数据更新后,横坐标并没有跟随新的数据做出改变,这里可以用setPos来实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import pyqtgraph as pg import numpy as np from pyqtgraph.Qt import QtGui, QtCore app = pg.QtGui.QApplication([]) win = pg.GraphicsWindow(title = "数据滚动" ) win.resize( 600 , 300 ) p = win.addPlot() data = np.random.random(size = 50 ) curve = p.plot(data) ptr = 0 def update(): global data, curve, ptr data[: - 1 ] = data[ 1 :] #数据向左滚动1位,也可以用data = np.roll(data,-1)实现 data[ - 1 ] = np.random.random() #末位更改为随机值 curve.setData(data) ptr + = 1 curve.setPos(ptr, 0 ) timer = QtCore.QTimer() timer.timeout.connect(update) timer.start( 100 ) app.exec_() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人