Exemplo n.º 1
0
    def updateSB(self):
        try:
            self.scale.scene().removeItem(self.scale)
        except:
            pass

        try:
            self.vscale.scene().removeItem(self.vscale)
        except:
            pass

        if self.scalebar:
            vb = self.p8.getViewBox()
            xsize = vb.viewRange()[0][1] - vb.viewRange()[0][0]
            ysize = vb.viewRange()[1][1] - vb.viewRange()[1][0]
            if self.scalebartype == 0:
                self.scale = pg.ScaleBar(size=round_to_1(xsize / 10.0),
                                         suffix=self.xlabel)
                self.scale.setParentItem(vb)
                self.scale.anchor((0, 1), (1, 1), offset=(-20, -10))
                self.scale.text.setText(pg.functions.siFormat(
                    round_to_1(xsize / 10.0), suffix=self.xlabel),
                                        color=(0, 0, 0))
            if self.scalebartype == 0 or self.scalebartype == 1:

                self.vscale = verticalScaleBar(size=round_to_1(ysize / 5.0),
                                               suffix=self.ylabel)
                self.vscale.setParentItem(vb)
                self.vscale.anchor((0, 1), (1, 1), offset=(-20, -5))
Exemplo n.º 2
0
 def plot_intensity_sums(self):
     try:
         self.hist_data = np.reshape(
             self.hist_data,
             newshape=(self.hist_data.shape[0],
                       self.numb_x_pixels * self.numb_y_pixels))
         self.intensity_sums = np.sum(
             self.hist_data, axis=0)  #sum intensities for each pixel
         self.intensity_sums = np.reshape(self.intensity_sums,
                                          newshape=(self.numb_x_pixels,
                                                    self.numb_y_pixels))
         self.ui.intensity_sums_viewBox.view.invertY(
             False)  # stop y axis invert
         self.ui.intensity_sums_viewBox.setImage(self.intensity_sums,
                                                 scale=(self.x_step_size,
                                                        self.y_step_size))
         self.ui.intensity_sums_viewBox.roi.setSize(
             [self.x_scan_size, self.y_step_size])  #line roi
         scale = pg.ScaleBar(size=1, suffix='um')
         scale.setParentItem(self.ui.intensity_sums_viewBox.view)
         scale.anchor((1, 1), (1, 1), offset=(-30, -30))
         self.ui.intensity_sums_viewBox.view.sigRangeChanged.connect(
             lambda: updateDelay(scale, 10))
     except Exception as err:
         print(format(err))
Exemplo n.º 3
0
    def plot_raw_scan(self):
        try:
            self.hist_image = np.reshape(self.hist_data,
                                         newshape=(self.hist_data.shape[0],
                                                   self.numb_x_pixels,
                                                   self.numb_y_pixels))
            self.times = self.time_data[:, 0, 0] * 1e-3
            self.ui.raw_hist_data_viewBox.view.invertY(
                False)  # stops y-axis invert
            self.ui.raw_hist_data_viewBox.setImage(self.hist_image,
                                                   scale=(self.x_step_size,
                                                          self.y_step_size),
                                                   xvals=self.times)
            self.ui.raw_hist_data_viewBox.roi.setSize(
                [self.x_scan_size, self.y_scan_size])
            # if self.ui.compare_checkBox.isChecked():
            #     self.ui.imv2.setImage(self.hist_image, scale= (data['Scan Parameters']['X step size (um)'],
            #                                     data['Scan Parameters']['Y step size (um)']), xvals=self.times)
            self.switch_compare()
            self.ui.raw_hist_data_viewBox.ui.roiBtn.clicked.connect(
                self.switch_compare)
            scale = pg.ScaleBar(size=1, suffix='um')
            scale.setParentItem(self.ui.raw_hist_data_viewBox.view)
            scale.anchor((1, 1), (1, 1), offset=(-30, -30))
            self.ui.raw_hist_data_viewBox.view.sigRangeChanged.connect(
                lambda: updateDelay(scale, 10))

        except Exception as err:
            print(format(err))
Exemplo n.º 4
0
 def scalebar(self):
     ''' Not working '''
     self.scale_bar = pg.ScaleBar(
         10,
         width=5,
         suffix='m')
     self.scale_bar.setParentItem(self.plotItem)
     self.scale_bar.anchor((1, 1), (1, 1), offset=(-20, -20))
Exemplo n.º 5
0
    def plot_fit_scan(self):
        try:
            if self.ui.use_raw_scan_settings.isChecked():
                num_x = self.numb_x_pixels
                num_y = self.numb_y_pixels
            else:
                num_x = self.ui.num_x_spinBox.value()
                num_y = self.ui.num_y_spinBox.value()

            numb_of_points = num_x * num_y  #75*75

            fwhm = np.zeros(shape=(numb_of_points, 1))
            pk_pos = np.zeros(shape=(numb_of_points, 1))
            #            pk_pos_plus = np.zeros(shape=(numb_of_points,1))
            #            pk_pos_minus = np.zeros(shape=(numb_of_points,1))
            sigma = np.zeros(shape=(numb_of_points, 1))
            height = np.zeros(shape=(numb_of_points, 1))

            for i in range(numb_of_points):
                fwhm[i, 0] = self.fit_scan_file['result_' +
                                                str(i)].values['g1_fwhm']
                pk_pos[i, 0] = self.fit_scan_file['result_' +
                                                  str(i)].values['g1_center']
                sigma[i, 0] = self.fit_scan_file['result_' +
                                                 str(i)].values['g1_sigma']
                height[i, 0] = self.fit_scan_file['result_' +
                                                  str(i)].values['g1_height']

            newshape = (num_x, num_y)

            param_selection = str(self.ui.comboBox.currentText())
            self.img = np.reshape(eval(param_selection), newshape)

            if self.ui.use_raw_scan_settings.isChecked():
                self.ui.fit_scan_viewbox.setImage(self.img,
                                                  scale=(self.x_step_size,
                                                         self.y_step_size))
                scale = pg.ScaleBar(size=2, suffix='um')
                scale.setParentItem(self.ui.fit_scan_viewbox.view)
                scale.anchor((1, 1), (1, 1), offset=(-30, -30))
                self.ui.fit_scan_viewbox.view.sigRangeChanged.connect(
                    lambda: updateDelay(scale, 10))
            else:
                self.ui.fit_scan_viewbox.setImage(self.img)

            self.ui.fit_scan_viewbox.view.invertY(False)

        except Exception as e:
            self.ui.result_textBrowser2.append(str(e))
            pass
Exemplo n.º 6
0
    def __init__(self, parent=None, scalebar=True, useViewBox=False):
        pg.setConfigOptions(antialias=True)
        pg.setConfigOption('background', 'w')
        pg.setConfigOption('foreground', 'k')
        pg.GraphicsWindow.__init__(self)
        self.useViewBox = useViewBox
        #win = pg.GraphicsWindow(title="Basic plotting examples")
        # self.view = pg.PlotWidget(self)

        # self.view = pg.widgets.RemoteGraphicsView.RemoteGraphicsView()
        #self.view.pg.setConfigOptions(antialias=True)  ## prettier plots at no cost to the main process!
        # self.view.setWindowTitle('pyqtgraph example: RemoteSpeedTest')
        self.resize(800, 350)
        #win.setWindowTitle('pyqtgraph example: Plotting')

        # Enable antialiasing for prettier plots
        self.scalebar = scalebar
        self.scalebartype = 0
        # self.setCentralWidget(self.view)
        # self.curve = self.view.plot()
        self.curve = []

        self.p8 = self.addPlot(title="Region Selection")
        pl8 = self.p8.plot()  #data2, pen=(255,255,255,200))
        if self.useViewBox:
            self.nextRow()

            self.p9 = self.addPlot(title="Zoom on selected region")
            pl9 = self.p9.plot()

        vb = self.p8.getViewBox()
        xsize = vb.viewRange()[0][1] - vb.viewRange()[0][0]
        ysize = vb.viewRange()[1][1] - vb.viewRange()[1][0]
        self.scale = pg.ScaleBar(size=round_to_1(xsize / 10.0), suffix='s')
        self.scale.setParentItem(vb)
        self.scale.anchor((0, 1), (1, 1), offset=(-20, -10))
        self.vscale = verticalScaleBar(size=round_to_1(ysize / 5.0),
                                       suffix='s')
        self.vscale.setParentItem(vb)
        self.vscale.anchor((0, 1), (1, 1), offset=(-20, -10))

        self.xlabel = ''
        self.ylabel = ''
        self.marker = pg.InfiniteLine(pos=0, pen=(0, 0, 0), movable=True)
        self.markerpos = 0
        self.p8.addItem(self.marker)
        self.p8.sigXRangeChanged.connect(self.updateSB)
        self.updateSB()
        self.show()
Exemplo n.º 7
0
    def plot_intensity_sums(self):
        try:
            # TODO test line scan plots

            #intensities = np.reshape(intensities, newshape=(2048, numb_pixels_X*numb_pixels_Y))

            sums = np.sum(self.intensities, axis=-1)
            sums = np.reshape(sums,
                              newshape=(self.numb_x_pixels,
                                        self.numb_y_pixels))

            self.ui.intensity_sums_viewBox.setImage(sums,
                                                    scale=(self.x_step_size,
                                                           self.y_step_size))
            self.ui.intensity_sums_viewBox.view.invertY(False)

            scale = pg.ScaleBar(size=2, suffix='um')
            scale.setParentItem(self.ui.intensity_sums_viewBox.view)
            scale.anchor((1, 1), (1, 1), offset=(-30, -30))
            self.ui.intensity_sums_viewbox.view.sigRangeChanged.connect(
                lambda: updateDelay(scale, 10))

        except Exception as e:
            self.ui.result_textBrowser2.append(str(e))
Exemplo n.º 8
0
    def plot_raw_scan(self):
        try:
            # TODO test line scan plots

            intensities = self.intensities.T  #this is only there because of how we are saving the data in the app
            intensities = np.reshape(intensities,
                                     newshape=(2048, self.numb_x_pixels,
                                               self.numb_y_pixels))
            self.ui.raw_scan_viewbox.setImage(intensities,
                                              scale=(self.x_step_size,
                                                     self.y_step_size),
                                              xvals=self.wavelengths)

            #roi_plot = self.ui.raw_scan_viewBox.getRoiPlot()
            #roi_plot.plot(data['Wavelengths'], intensities)
            self.ui.raw_scan_viewbox.view.invertY(False)
            scale = pg.ScaleBar(size=2, suffix='um')
            scale.setParentItem(self.ui.raw_scan_viewbox.view)
            scale.anchor((1, 1), (1, 1), offset=(-30, -30))
            self.ui.raw_scan_viewbox.view.sigRangeChanged.connect(
                lambda: updateDelay(scale, 10))

        except Exception as e:
            self.ui.result_textBrowser2.append(str(e))
Exemplo n.º 9
0
    #                          symbolSize=8, symbolBrush=color, symbolPeb='w')
    # feature2_plot[3, 0].setLabels(left=['amplitude', 'V'], bottom=['rise time', 's'])
    feature3_plot[0, 0].plot(grand_response[type[0]]['latency'], grand_response[type[0]]['amp'], pen=None, symbol='o',
                             symbolSize=8, symbolBrush=color, symbolPen='w')
    feature3_plot[0, 0].setLabels(left=['Amp', 'V'], bottom=['Latency', 's'])
    feature3_plot[0, 1].plot(grand_response[type[0]]['CV'], grand_response[type[0]]['amp'], pen=None, symbol='o',
                             symbolSize=8, symbolBrush=color, symbolPen='w')
    feature3_plot[0, 1].setLabels(left=['Amp', 'V'], bottom=['CV', ''])
    feature3_plot[0, 2].plot(grand_response[type[0]]['CV'], grand_response[type[0]]['latency'], pen=None, symbol='o',
                             symbolSize=8, symbolBrush=color, symbolPen='w')
    feature3_plot[0, 2].setLabels(left=['Latency', 's'], bottom=['CV', ''])
    amp_plot.plot(grand_response[type[0]]['amp'], grand_response[type[0]]['amp_measured'], pen=None, symbol='o',
                 symbolSize=10, symbolBrush=color, symbolPen='w')
    amp_plot.setLabels(left=['Measured Amp', 'V'], bottom=['Fit Amp','V'])
    if c == len(connection_types) - 1:
        x_scale = pg.ScaleBar(size=10e-3, suffix='s')
        x_scale.setParentItem(synapse_plot[c, 0].vb)
        x_scale.anchor(scale_anchor, scale_anchor, offset=scale_offset)
amp_list = feature_anova('amp', grand_response)
feature_kw('amp', grand_response)
feature_kw('latency', grand_response)
feature_kw('rise', grand_response)
feature_kw('CV', grand_response)
latency_list = feature_anova('latency', grand_response)
rise_list = feature_anova('rise', grand_response)
decay_list = feature_anova('decay', grand_response)

# if args['organism'] == 'human':
#     t, p = stats.ks_2samp(grand_response[('3', 'unknown')]['amp'], grand_response[('5', 'unknown')]['amp'])
#     print ('KS: Amp = %f' % p)
#     t, p = stats.ks_2samp(grand_response[('3', 'unknown')]['latency'],
Exemplo n.º 10
0
"""
Demonstrates ScaleBar
"""
import initExample  ## Add path to library (just for examples; you do not need this)

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui, QtWidgets
import numpy as np

pg.mkQApp()
win = pg.GraphicsWindow()
win.setWindowTitle('pyqtgraph example: ScaleBar')

vb = win.addViewBox()
vb.setAspectLocked()

img = pg.ImageItem()
img.setImage(np.random.normal(size=(100, 100)))
img.setScale(0.01)
vb.addItem(img)

scale = pg.ScaleBar(size=0.1)
scale.setParentItem(vb)
scale.anchor((1, 1), (1, 1), offset=(-20, -20))

## 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'):
        QtWidgets.QApplication.instance().exec_()