Commit 04674644 authored by Martin Drechsler's avatar Martin Drechsler

small changes towards rolling plots

parent e0874f10
...@@ -200,14 +200,15 @@ class CameraGuiMainWindow(QMainWindow): ...@@ -200,14 +200,15 @@ class CameraGuiMainWindow(QMainWindow):
if self.isMeasuring: if self.isMeasuring:
self.roiDataReadySignal.emit(self.newData) self.roiDataReadySignal.emit(self.newData)
self.scanROIdataY = np.roll(self.scanROIdataY, -1)
self.timeROIdataY = np.roll(self.timeROIdataY, -1) self.timeROIdataY = np.roll(self.timeROIdataY, -1)
self.scanROIdataY[-1] = self.newData self.scanROIdataY[self.iROIdata] = self.newData
self.timeROIdataY[-1] = self.newData self.timeROIdataY[-1] = self.newData
self.iROIdata = np.mod(self.frame_index + 1, len(self.timeROIdataY)) self.iROIdata = np.mod(self.frame_index + 1, len(self.timeROIdataY))
self.timeCurve.setData(self.timeROIdataY) self.timeCurve.setData(self.timeROIdataY)
self.scanCurve.setData(self.scanROIdataX, self.scanROIdataY) self.scanCurve.setData(self.scanROIdataX, self.scanROIdataY)
def repositionRoi(self, old_size): def repositionRoi(self, old_size):
aux_dict = {'1x1': 2048, '2x2': 1024, '4x4': 512, '8x8': 256} aux_dict = {'1x1': 2048, '2x2': 1024, '4x4': 512, '8x8': 256}
new_size = aux_dict[ new_size = aux_dict[
......
# -*- coding: utf-8 -*-
"""
Various methods of drawing scrolling plots.
"""
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
app = QtGui.QApplication([])
win = pg.GraphicsLayoutWidget()
win.setWindowTitle('pyqtgraph example: Scrolling Plots')
# 2) Allow data to accumulate. In these examples, the array doubles in length
# whenever it is full.
win.nextRow()
p3 = win.addPlot()
p4 = win.addPlot()
# Use automatic downsampling and clipping to reduce the drawing load
p3.setDownsampling(mode='peak')
p4.setDownsampling(mode='peak')
p3.setClipToView(True)
p4.setClipToView(True)
p3.setRange(xRange=[-100, 0])
p3.setLimits(xMax=0)
curve3 = p3.plot()
curve4 = p4.plot()
p4.setYRange(0, 10)
data3 = np.empty(100)
ptr3 = 0
def update2():
global data3, ptr3
data3[ptr3] = np.random.rand()+5
ptr3 += 1
if ptr3 >= data3.shape[0]:
tmp = data3
data3 = np.empty(data3.shape[0] * 2)
data3[:tmp.shape[0]] = tmp
curve3.setData(data3[:ptr3])
curve3.setPos(-ptr3, 0)
curve4.setData(data3[:ptr3])
if ptr3 == 50:
p4.setRange(xRange=[0, 50])
if ptr3 > 50:
curve4.setPos(-ptr3, 0)
timer = pg.QtCore.QTimer()
timer.timeout.connect(update2)
timer.start(100)
win.show()
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment