77 lines
2.7 KiB
Python
77 lines
2.7 KiB
Python
|
import numpy as np
|
||
|
|
||
|
from .DataExtractorLyse import DataExtractorManager
|
||
|
from .WidgetPlot import WidgetPlot
|
||
|
|
||
|
import pyqtgraph as pg
|
||
|
from pyqtgraph import OrderedDict
|
||
|
from PyQt5.QtWidgets import QLabel, QLineEdit
|
||
|
from pyqtgraph import Qt
|
||
|
from pyqtgraph.Qt import QtCore
|
||
|
from PyQt5.QtWidgets import *
|
||
|
from PyQt5.QtCore import *
|
||
|
from PyQt5.QtGui import QRegExpValidator
|
||
|
from PyQt5.QtCore import QRegExp
|
||
|
|
||
|
from PIL import ImageColor
|
||
|
|
||
|
|
||
|
class Widget1DLivingPlot(WidgetPlot):
|
||
|
|
||
|
def __init__(self, title, x_data_path=None, y_data_path=None, x_in_results=False, y_in_results=False, **kwargs):
|
||
|
|
||
|
super().__init__(title, **kwargs)
|
||
|
|
||
|
# set data extractor
|
||
|
if x_data_path is not None:
|
||
|
self.x_data_extractor_manager = DataExtractorManager(x_data_path)
|
||
|
self.x_data_extractor_manager.add_data_extractor('warning', 'single', (x_data_path[0], 'warning'))
|
||
|
if x_in_results:
|
||
|
self.x_data_extractor_manager.add_data_extractor('x', 'single', x_data_path)
|
||
|
else:
|
||
|
self.x_data_extractor_manager.add_data_extractor('x', 'global', x_data_path)
|
||
|
else:
|
||
|
self.x_data_extractor_manager = None
|
||
|
|
||
|
self.y_data_extractor_manager = DataExtractorManager(y_data_path)
|
||
|
self.y_data_extractor_manager.add_data_extractor('warning', 'single', (y_data_path[0], 'warning'))
|
||
|
if y_in_results:
|
||
|
self.y_data_extractor_manager.add_data_extractor('y', 'single', y_data_path)
|
||
|
else:
|
||
|
self.y_data_extractor_manager.add_data_extractor('y', 'global', y_data_path)
|
||
|
|
||
|
self.aximg = self.plots.addPlot(title="")
|
||
|
self.img = pg.PlotCurveItem()
|
||
|
self.aximg.setClipToView(True)
|
||
|
self.aximg.setDownsampling(mode='peak')
|
||
|
self.aximg.addItem(self.img)
|
||
|
|
||
|
self.x = np.empty(100)
|
||
|
self.y = np.empty(100)
|
||
|
self.current_data_length = 0
|
||
|
|
||
|
def update(self, h5_path):
|
||
|
|
||
|
if self.current_data_length >= self.x.shape[0]:
|
||
|
tmp = self.x
|
||
|
self.x = np.empty(self.x.shape[0] * 2)
|
||
|
self.x[:tmp.shape[0]] = tmp
|
||
|
tmp = self.y
|
||
|
self.y = np.empty(self.y.shape[0] * 2)
|
||
|
self.y[:tmp.shape[0]] = tmp
|
||
|
|
||
|
if self.x_data_extractor_manager is not None:
|
||
|
x_data = self.x_data_extractor_manager.get_data(h5_path)
|
||
|
self.x[self.current_data_length] = x_data['x']
|
||
|
else:
|
||
|
self.x[self.current_data_length] = self.current_data_length
|
||
|
y_data = self.y_data_extractor_manager.get_data(h5_path)
|
||
|
self.y[self.current_data_length] = y_data['y']
|
||
|
|
||
|
print(y_data['y'])
|
||
|
self.img.setData(x=self.x[:self.current_data_length], y=self.y[:self.current_data_length])
|
||
|
self.current_data_length = self.current_data_length + 1
|
||
|
|
||
|
|
||
|
|