zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BZOJ 2752: [HAOI2012]高速公路(road)
    codevs 1979 第K个数
    洛谷 P2680 运输计划
    hdu 3501 Calculation 2
    POJ 2417 Discrete Logging
    比较数组和字典
    js事件之event.preventDefault()与event.stopPropagation()用法区别
    alert
    js基本类型的包装对象
    js取自定义data属性
  • 原文地址:https://www.cnblogs.com/liming19680104/p/13206359.html
Copyright © 2011-2022 走看看