我正在开展一个项目,我必须分析来自设备的信号。我有一个正在运行的库,它可以从设备获取数据。截至目前,我正在收集数据,然后绘制它。我有兴趣构建一个可以实时绘制图表的实时数据监视器。经过搜索,我发现 PyQtGraph 非常适合这项任务。我对 Qt 不熟悉,所以我正在寻找可以根据我的需要进行修改的示例。 PyQtGraph 文档中给出的一些示例实时更新绘图,但我需要类似实时监视器的东西 - 当图表不断接收数据时,它会向右移动。
如果它类似于已知的连续函数,我可以更新输入x - w*t
with t
是时候让波浪向右移动了。但这是离散数据,所以我不确定如何使用 PyQtGraph 让它工作。因此,如果有人能够提供一些关于如何进行的指导,那就太好了。
截至目前,这就是我所拥有的
Code
app = QtGui.QApplication([])
#mw = QtGui.QMainWindow()
#mw.resize(800,800)
win = pg.GraphicsWindow(title="Basic plotting examples")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example: Plotting')
# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)
p6 = win.addPlot(title="Updating plot")
curve = p6.plot(pen='r')
X_axis = numpy.linspace(0,100,12800)
#'data' is my required y_axis containing 12800 values
ydata = np.array_split(data,50)
xdata = np.array_split(X_axis,50)
ptr = 0
def update():
global curve, data, ptr, p6
curve.setData(xdata[ptr%50],ydata[ptr%50])
ptr += 1
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(1000)
这是每 2 秒间隔更新一次数据,但我希望它向右移动。
要制作情节滚动,您有三个选择:
-
滚动原始数据并重新绘制(参见numpy.roll http://docs.scipy.org/doc/numpy/reference/generated/numpy.roll.html)
curve = plotItem.plot(data)
data = np.roll(data, 1) # scroll data
curve.setData(data) # re-plot
-
移动绘图曲线,使其在视图上滑动:
curve = plotItem.plot(data)
curve.setPos(x, 0) # Move the curve
-
移动视图区域,使绘图曲线看起来滚动
curve = plotItem.plot(data)
plotItem.setXRange(x1, x2) # Move the view
The 滚动图示例 https://github.com/pyqtgraph/pyqtgraph/blob/develop/examples/scrollingPlots.py(目前仅在开发版本中)演示了其中的每一个:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)