Я работаю над проектом, в котором мне придется анализировать сигналы, поступающие от устройства. У меня работает библиотека, которая получает данные с устройства. На данный момент я собираю данные, а затем рисую их. Я заинтересован в создании монитора данных в реальном времени, который может строить график в режиме реального времени. После поиска я понял, что PyQtGraph идеально подходит для этой задачи. Я не знаком с Qt, поэтому ищу примеры, которые могу модифицировать под свои нужды. Некоторые примеры, приведенные в документах PyQtGraph, обновляют график в режиме реального времени, НО мне нужно что-то вроде живого монитора, где график движется вправо, поскольку он продолжает получать данные.
Если это что-то вроде известной непрерывной функции, я могу обновить вход x - w*t
, указав t
как время, чтобы волна двигалась вправо. Но это дискретные данные, поэтому я не уверен, как заставить их работать с помощью PyQtGraph. Так что было бы здорово, если бы кто-то мог дать несколько советов о том, как это сделать.
На данный момент это то, что у меня есть
Код
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-секундного интервала, но я хочу, чтобы они двигались вправо.