pyqtgraph--動態更新數據


import pyqtgraph as pg
import numpy as np
from pyqtgraph.Qt import 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)  #在坐標p中繪圖並返回圖形對象
def update():
    global data, curve
    data[:-1] = data[1:] 
    data[-1] = np.random.random() 
    curve.setData(data)  #給圖形對象設置數據---圖形對象重新繪圖
timer = QtCore.QTimer()  #創建一個定時器
timer.timeout.connect(update)  #設置定時器執行函數
timer.start(100)  #啟動
#參數:間隔毫秒數

app.exec_()

 

 

上面的圖形,數據更新后,橫坐標並沒有跟隨新的數據做出改變,這里可以用setPos來實現

import pyqtgraph as pg
import numpy as np
from pyqtgraph.Qt import 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:] 
    data[-1] = np.random.random() 
    curve.setData(data)  
    ptr += 1
    curve.setPos(ptr, 0)  #給圖形對象設置新的坐標值
    #參數1:x軸起點坐標
    #參數2:y軸起點坐標
timer = QtCore.QTimer()  
timer.timeout.connect(update)  
timer.start(100)  
app.exec_()

 

p.setRange(xRange=[-100, 0])  # 將橫坐標的范圍限定為[-100,0]
p.setLimits(xMax=0)  # 橫坐標的最大值為0

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM