Example #1
0
    def _replot(self):
        def pen(color):
            pen = QPen(color, 1)
            pen.setCosmetic(True)
            return pen

        if self._scatter_item is not None:
            self.plot.removeItem(self._scatter_item)
            self._scatter_item = None

        nclasses = len(self.class_model)
        pens = [pen(self.colors[i]) for i in range(nclasses)]

        self._scatter_item = pg.ScatterPlotItem(
            self.data[:, 0],
            self.data[:, 1],
            symbol="+",
            pen=[pens[int(ci)] for ci in self.data[:, 2]])

        self.plot.addItem(self._scatter_item)
Example #2
0
    def _replot(self):
        def pen(color):
            pen = QPen(color, 1)
            pen.setCosmetic(True)
            return pen

        if self._scatter_item is not None:
            self.plot.removeItem(self._scatter_item)
            self._scatter_item = None

        x = self.__buffer[:, 0].copy()
        if self.hasAttr2:
            y = self.__buffer[:, 1].copy()
        else:
            y = np.zeros(self.__buffer.shape[0])

        colors = self.colors[self.__buffer[:, 2]]
        pens = [pen(c) for c in colors]
        self._scatter_item = pg.ScatterPlotItem(x, y, symbol="+", pen=pens)
        self.plot.addItem(self._scatter_item)
Example #3
0
def test_init_spots():
    app = pg.mkQApp()
    plot = pg.PlotWidget()
    # set view range equal to its bounding rect.
    # This causes plots to look the same regardless of pxMode.
    plot.setRange(rect=plot.boundingRect())
    spots = [
        {
            'x': 0,
            'y': 1
        },
        {
            'pos': (1, 2),
            'pen': None,
            'brush': None,
            'data': 'zzz'
        },
    ]
    s = pg.ScatterPlotItem(spots=spots)

    # Check we can display without errors
    plot.addItem(s)
    app.processEvents()
    plot.clear()

    # check data is correct
    spots = s.points()

    defPen = pg.mkPen(pg.getConfigOption('foreground'))

    assert spots[0].pos().x() == 0
    assert spots[0].pos().y() == 1
    assert spots[0].pen() == defPen
    assert spots[0].data() is None

    assert spots[1].pos().x() == 1
    assert spots[1].pos().y() == 2
    assert spots[1].pen() == pg.mkPen(None)
    assert spots[1].brush() == pg.mkBrush(None)
    assert spots[1].data() == 'zzz'
    plot.close()
Example #4
0
    def __init__(self, *args, display_size=(1280, 800), roi_params, **kwargs):
        super().__init__(*args, **kwargs)

        self.roi_params = roi_params

        self.view_box = pg.ViewBox(invertY=True,
                                   lockAspect=1,
                                   enableMouse=False)
        self.addItem(self.view_box)

        self.roi_box = pg.ROI(
            maxBounds=QRectF(0, 0, display_size[0], display_size[1]),
            size=roi_params["size"],
            pos=roi_params["pos"],
        )

        self.roi_box.addScaleHandle([0, 0], [1, 1])
        self.roi_box.addScaleHandle([1, 1], [0, 0])
        self.roi_box.sigRegionChanged.connect(self.set_param_val)
        self.roi_params.sigTreeStateChanged.connect(self.set_roi)
        self.view_box.addItem(self.roi_box)
        self.view_box.setRange(
            QRectF(0, 0, display_size[0], display_size[1]),
            update=True,
            disableAutoRange=True,
        )
        self.view_box.addItem(
            pg.ROI(
                pos=(1, 1),
                size=(display_size[0] - 1, display_size[1] - 1),
                movable=False,
                pen=(80, 80, 80),
            ))

        self.calibration_points = pg.ScatterPlotItem(pen=None,
                                                     brush=(255, 0, 0))
        self.calibration_frame = pg.PlotCurveItem(brush=(120, 10, 10),
                                                  pen=(200, 10, 10),
                                                  fill_level=1)
        self.view_box.addItem(self.calibration_points)
        self.view_box.addItem(self.calibration_frame)
Example #5
0
def generate_scatter_plot(params_dict, feature1, electrode1, feature2,
                          electrode2):
    """
    This function takes the parameters calculated for the waveforms and generates a scatter plot for
    selected electrodes and features.

    Inputs:

      params_dict: Dictionary containing the waveform parameters as generated by the calculate_params
        function.
      feature1: The feature to be plotted on x axis.
      electrode1: From which electrode the parameter will be pulled for the x axis.
      feature2: The feature to be plotted on y axis.
      electrode2: From which electrode the parameter will be pulled for the y axis.

    Outputs:
      plt: Scatter plot item containing the scatter plot generated for the selected parameters
    """

    y_label = feature2 + ' on Electrode #' + str(electrode2)
    x_label = feature1 + ' on Electrode #' + str(electrode1)
    plt = pg.PlotItem(labels={'left': y_label, 'bottom': x_label})
    s = pg.ScatterPlotItem()
    spots = []

    for i in range(n_clusters):
        feat1_array = params_dict[str(i)][feature1]
        feat2_array = params_dict[str(i)][feature2]
        pos = np.column_stack(
            (feat1_array[:, electrode1], feat2_array[:, electrode2]))
        for j in range(len(feat1_array)):
            spots.append({
                'pos': pos[j, :],
                'size': 5,
                'symbol': 'o',
                'pen': pg.mkPen(None),
                'brush': pg.intColor(i, n_clusters)
            })
    s.addPoints(spots)
    plt.addItem(s)
    return plt
Example #6
0
def minimum_main():
    # run()

    # app = QtGui.QApplication([])
    # win = QtGui.QMainWindow()
    # view = GraphicsLayoutWidget()
    # win.setCentralWidget(view)
    # win.show()
    # win.setWindowTitle("win [Test] Window Title")

    view: GraphicsView = GraphicsWindow()
    view.setWindowTitle("view [Test] Window Title")

    fig: GraphicsLayout = view.centralWidget

    axes = fig.addPlot()
    n = 300
    s1 = pg.ScatterPlotItem(size=10,
                            pen=pg.mkPen(None),
                            brush=pg.mkBrush(255, 255, 255, 120))
    pos = np.random.normal(size=(2, n), scale=1e-5)
    spots = [{
        'pos': pos[:, i],
        'data': 1
    } for i in range(n)] + [{
        'pos': [0, 0],
        'data': 1
    }]
    s1.addPoints(spots)
    axes.addItem(s1)

    # p = PlotItem()
    # p.titleLabel = "title test"
    # p.addLine([1, 2, 3], [4, 5, 6])
    # fig.addItem(p)
    # fig.addItem(p, row=1, col=1)

    print("execute...")

    from PyQt5.QtWidgets import QApplication  # , QMainWindow
    QApplication.instance().exec_()
Example #7
0
    def getFit(self):
        try:
            self.fit = getFit(self.data, self.x, self.guess)
            checkBounds(self.fit, self.data, self.x)
            self.plot.clear()
            data = pg.ScatterPlotItem(self.x, self.ampList, symbol='o', size=5)
            self.plot.addItem(data)

            self.ui.results.append("----------RESULT----------")
            self.plotFit(self.fit)
        except (RuntimeError, AssertionError):
            self.ui.results.append(
                "----------OPTIMIZATION NOT FOUND----------")
            QtGui.QMessageBox.information(
                self, "Unable to Find Optimized Fit",
                "Try messing with the guess "
                "parameters")
        except AttributeError:
            QtGui.QMessageBox.information(
                self, "Error Getting Fit", "Please upload a Matlab XCor data "
                "file to fit")
Example #8
0
    def showXplot(self):
        self.p3.clear()
        #
        self.p3.setLabel(axis='bottom',
                         text=str(self.listWidget1.currentItem().text()))
        self.p3.setLabel(axis='left',
                         text=str(self.listWidget2.currentItem().text()))
        #
        minReg, maxReg = self.lr1.getRegion(
        )  # returns the depth values associated with the region as a tuple
        # use the DataFrame structure of pandas to quickly get the values associated with these depths
        dataInRegionDF = self.log_df.loc[minReg:maxReg]
        #print dataTEST
        xData = dataInRegionDF[str(self.listWidget1.currentItem().text())]
        yData = dataInRegionDF[str(self.listWidget2.currentItem().text())]
        crossPlot = pg.ScatterPlotItem()
        self.p3.addItem(crossPlot)
        crossPlot.addPoints(x=xData, y=yData)


# =============== END OF SCRIPT =================
Example #9
0
 def set_plotdata_2(self, name, data_x, data_y):
     data_y = data_y[:64]
     brush_default = pg.mkBrush(self.a["colorIndex_x"],
                                self.a["colorIndex_y"],
                                self.a["colorIndex_z"], 100)
     if name in self.traces:
         # update scatter plot content
         self.graph.clear()
         self.graph.setData(data_x, data_y, brush=brush_default)
     else:
         self.traces.add(name)
         # initial setup of scatter plot
         self.graph = pg.ScatterPlotItem(
             x=data_x,
             y=data_y,
             pen=None,
             symbol=self.symbol,
             size=30,
             brush=(100, 100, 255, 100),
         )
     self.audio_plot.addItem(self.graph)
Example #10
0
    def __init__(self, parent=None, **kargs):
        super(TimeLinePlotWidget, self).__init__(parent, **kargs)
        self.plot = None

        self.symbol_view = pg.ViewBox()
        self.plotItem.scene().addItem(self.symbol_view)
        self.symbol_view.setXLink(self.plotItem)
        self.symbol_view.setRange(yRange=(0, 1))
        self.symbol_view.enableAutoRange(axis=pg.ViewBox.YAxis, enable=False)
        fc_brush = pg.mkBrush(0, 255, 0, 255)
        self.forecasts_plot = pg.ScatterPlotItem(pen=pg.mkPen(None),
                                                 symbol='t',
                                                 brush=fc_brush)

        self.symbol_view.addItem(self.forecasts_plot)
        self.getAxis('left').enableAutoSIPrefix(False)
        self.getAxis('bottom').enableAutoSIPrefix(False)
        self.getAxis('left').setLabel('N/A')

        self.plotItem.vb.sigResized.connect(self._update_views)
        self._update_views()
Example #11
0
 def __init__(self,image=np.zeros((1,1)), nColors=10,parent=None):
     QWidget.__init__(self,parent)
     self.nColors=nColors
     self.view= pg.GraphicsLayoutWidget()
     self.l = QVBoxLayout()
     self.setLayout(self.l)
     self.l.addWidget(self.view)
     self.show()
     self.w1 = self.view.addPlot()
     self.w1.vb.setAspectLocked(True,ratio=1)
     self.w1.vb.invertY(True)
     self.s1 = pg.ScatterPlotItem(size=5, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120))
     #self.s1.setData(x,y)
     
     self.w1.addItem(pg.ImageItem(image))
     self.w1.addItem(self.s1)
     self.brush_idx=0
     color=np.arange(self.nColors)/self.nColors
     color=np.array(cm.RdYlBu(color))*255
     color[:,3]=200 # set alpha channel
     self.brushes=[pg.mkBrush(QColor(*color[i,:].astype(uint16))) for i in np.arange(self.nColors)]
Example #12
0
    def drawGrid(self):

        try:
            self.clearGrid()
        except:
            pass

        height = float(self.polmap_height_l.text())

        data = []

        h_idx = np.nanargmin(np.abs(height - self.grid_elev))

        indicies = np.argwhere(self.grid_array[:, :, h_idx] > 0)

        for ii in indicies:
            data.append((self.grid_lon[ii[1]], self.grid_lat[ii[0]], self.grid, \
                            self.grid, self.color_list[int(self.grid_array[ii[0], ii[1], h_idx]) - 1]))

        overlap_indicies = np.argwhere(self.grid_array[:, :, h_idx] == -1)

        for ii in overlap_indicies:
            self.ovlp_marker = pg.ScatterPlotItem()
            self.ovlp_marker.setPoints(x=[self.grid_lon[ii[1]]],
                                       y=[self.grid_lat[ii[0]]],
                                       pen=(255, 255, 255),
                                       brush=(255, 255, 255),
                                       symbol='o')
            self.polmap_canvas.addItem(self.ovlp_marker)

        # try:
        self.heat_map_data_squares = RectangleItem(data,
                                                   c_map="set",
                                                   alpha=255)
        self.polmap_canvas.addItem(self.heat_map_data_squares)
        # # If there are no squares to draw
        # except IndexError:
        #     pass

        self.drawTrajPoint(height)
Example #13
0
def plot_curve(curve, pen=None, shadow_pen=None, symbol="+", symbol_size=3, name=None):
    """
    Construct a `PlotCurve` for the given `ROCCurve`.

    :param ROCCurve curve:
        Source curve.

    The other parameters are passed to pg.PlotDataItem

    :rtype: PlotCurve
    """

    def extend_to_origin(points):
        "Extend ROCPoints to include coordinate origin if not already present"
        if points.tpr.size and (points.tpr[0] > 0 or points.fpr[0] > 0):
            points = ROCPoints(
                numpy.r_[0, points.fpr],
                numpy.r_[0, points.tpr],
                numpy.r_[points.thresholds[0] + 1, points.thresholds],
            )
        return points

    points = extend_to_origin(curve.points)
    item = pg.PlotCurveItem(
        points.fpr, points.tpr, pen=pen, shadowPen=shadow_pen, name=name, antialias=True
    )
    sp = pg.ScatterPlotItem(
        curve.points.fpr,
        curve.points.tpr,
        symbol=symbol,
        size=symbol_size,
        pen=shadow_pen,
        name=name,
    )
    sp.setParentItem(item)

    hull = extend_to_origin(curve.hull)

    hull_item = pg.PlotDataItem(hull.fpr, hull.tpr, pen=pen, antialias=True)
    return PlotCurve(curve, item, hull_item)
Example #14
0
    def initialize_plot(self):

        self.vline = pg.InfiniteLine(angle = 90, movable = False, pen = self.params['vline_color'])
        self.vline.setZValue(1) # ensure vline is above plot elements
        self.plot.addItem(self.vline)

        self.curves = []
        self.channel_labels = []
        self.channel_offsets_line = []
        for c in range(self.source.nb_channel):
            color = self.by_channel_params['ch{}'.format(c), 'color']
            curve = pg.PlotCurveItem(pen='#7FFF00', downsampleMethod='peak', downsample=1,
                            autoDownsample=False, clipToView=True, antialias=False)#, connect='finite')
            self.plot.addItem(curve)
            self.curves.append(curve)

            ch_name = '{}: {}'.format(c, self.source.get_channel_name(chan=c))
            label = TraceLabelItem(text=ch_name, color=color, anchor=(0, 0.5), border=None, fill=self.params['label_fill_color'])
            label.setZValue(2) # ensure labels are drawn above scatter
            font = label.textItem.font()
            font.setPointSize(self.params['label_size'])
            label.setFont(font)
            label.label_dragged.connect(lambda label_y, chan_index=c: self.params_controller.apply_label_drag(label_y, chan_index))
            label.label_ygain_zoom.connect(lambda factor_ratio, chan_index=c: self.params_controller.apply_ygain_zoom(factor_ratio, chan_index))

            self.plot.addItem(label)
            self.channel_labels.append(label)

            offset_line = pg.InfiniteLine(angle = 0, movable = False, pen = '#7FFF00')
            self.plot.addItem(offset_line)
            self.channel_offsets_line.append(offset_line)

        if self.source.with_scatter:
            self.scatter = pg.ScatterPlotItem(size=self.params['scatter_size'], pxMode = True)
            self.plot.addItem(self.scatter)



        self.viewBox.xsize_zoom.connect(self.params_controller.apply_xsize_zoom)
        self.viewBox.ygain_zoom.connect(self.params_controller.apply_ygain_zoom)
Example #15
0
    def __init__(self, dataSource=None, nameList=['Plot1', 'Plot2', 'Plot3']):
        #Widget Setting
        #pg.setConfigOption('background', 'w')
        self.numOfDataToPlot = 200
        self.plotViewList = []
        self.penStyleList = [(255, 5, 5), (200, 200, 100), (195, 46, 212),
                             (0, 0, 200), (237, 177, 32)]
        self.count = 0
        self.curveList = []
        self.curveXData = [i for i in range(0, self.numOfDataToPlot)]
        self.curveYDataList = []
        self.app = QtGui.QApplication([])
        self.mainWindow = QtGui.QMainWindow()
        self.mainWindow.setWindowTitle('pyqtgraph example: PlotWidget')
        self.mainWindow.resize(800, 800 / len(nameList))
        self.view = pg.GraphicsLayoutWidget(
        )  ## GraphicsView with GraphicsLayout inserted by default
        self.mainWindow.setCentralWidget(self.view)
        # layout = QtGui.QVBoxLayout()
        # self.GuiWiget.setLayout(layout)

        for i, name in zip(range(0, 3), nameList):
            plotView = self.view.addPlot(name=name)
            plotView.setRange(xRange=[-600, 600], yRange=[-600, 600])
            self.plotViewList.append(plotView)
            # plotWidget = pg.PlotWidget(name=name)  ## giving the plots names allows us to link their axes together
            # plotWidget.setXRange(0, self.numOfDataToPlot)
            # plotWidget.setYRange(-1, 1)
            # layout.addWidget(plotWidget)
            # self.plotWidgetList.append(plotWidget)

        # Display the widget as a new window
        self.mainWindow.show()

        #Draw Setting
        for plotView, penStyle in zip(self.plotViewList, self.penStyleList):
            curve = pg.ScatterPlotItem(size=1)
            curve.setPen(penStyle)
            self.curveList.append(curve)
            plotView.addItem(curve)
Example #16
0
    def checkTest(self):
        if len(self.traindata) == 0:
            return 1
        print(self.testData)
        self.labeltestdata = classifyKNN(self.traindata, self.testData,
                                         self.spinBoxK.value(),
                                         self.numberofclasses,
                                         self.checkBoxSuspended.isChecked(), 0)
        x = sum([
            int(self.labeltestdata[i] == self.trueTestDataLabels[i][1])
            for i in range(len(self.trueTestDataLabels))
        ]) / float(len(self.trueTestDataLabels))

        classes = []
        i = 0
        while i < 20:
            classes.append([])
            i += 1

        for i in self.trueTestDataLabels:
            classes[i[1]].append(np.asarray(i[0]))
        i = 0
        for j in classes:
            myS = pg.ScatterPlotItem(size=10,
                                     pen=pg.mkPen(colors[i]),
                                     brush=pg.mkBrush(255, 255, 255, 120))
            myspots = []
            if (len(j)):
                for k in j:
                    myspots.append({'pos': k, 'data': i})
                i += 1
                myS.addPoints(myspots)
                self.w1.addItem(myS)

        dialog = QtWidgets.QMessageBox(QtWidgets.QMessageBox.Information,
                                       "Точность классификации ",
                                       str(x),
                                       buttons=QtWidgets.QMessageBox.Ok,
                                       parent=None)
        result = dialog.exec_()
Example #17
0
    def _initialise_series(self):
        for s in self.series:
            s.remove_items()
        self.series.clear()

        channels = self.model.get_channel_schemata()
        try:
            data_names, error_bar_names = extract_scalar_channels(channels)
        except ValueError as e:
            self.error.emit(str(e))
            return

        colors = [
            SERIES_COLORS[i % len(SERIES_COLORS)]
            for i in range(len(data_names))
        ]
        for i, (data_name, color) in enumerate(zip(data_names, colors)):
            data_item = pyqtgraph.ScatterPlotItem(pen=None, brush=color)

            error_bar_name = error_bar_names.get(data_name, None)
            error_bar_item = pyqtgraph.ErrorBarItem(
                pen=color) if error_bar_name else None

            self.series.append(
                _Series(self, data_name, data_item, error_bar_name,
                        error_bar_item, self._history_length))

        def axis_info(i):
            # If there is only one series, set label/scaling accordingly.
            # TODO: Add multiple y axis for additional channels.
            c = channels[data_names[i]]
            label = c["description"]
            if not label:
                label = c["path"].split("/")[-1]
            return label, c["path"], colors[i], c

        setup_axis_item(self.getAxis("left"),
                        [axis_info(i) for i in range(len(data_names))])

        self.ready.emit()
    def __init__(self, time, events, label=None, color=None):
        self._kmf = KaplanMeierFitter().fit(time.astype(np.float64), events.astype(np.float64))

        self.label: str = label
        self.color: List[int] = color

        # refactor this
        time, survival = self._kmf.survival_function_.reset_index().values.T.tolist()
        lower, upper = self._kmf.confidence_interval_.values.T.tolist()
        self.x, self.y = self.generate_curve_coordinates(time, survival)
        _, self.lower_bound = self.generate_curve_coordinates(time, lower)
        _, self.upper_bound = self.generate_curve_coordinates(time, upper)

        # Estimated function curve
        self.estimated_fun = pg.PlotDataItem(self.x, self.y, pen=self.get_pen())

        # Lower and upper confidence intervals
        pen = self.get_pen(width=1, alpha=70)
        self.lower_conf_limit = pg.PlotDataItem(self.x, self.lower_bound, pen=pen)
        self.upper_conf_limit = pg.PlotDataItem(self.x, self.upper_bound, pen=pen)
        self.confidence_interval = pg.FillBetweenItem(
            self.upper_conf_limit, self.lower_conf_limit, brush=self.get_color(alpha=50)
        )

        self.selection = pg.PlotDataItem(pen=mkPen(color=QColor(Qt.yellow), width=4))
        self.selection.hide()

        self.median_survival = median = median_survival_times(self._kmf.survival_function_.astype(np.float32))
        self.median_vertical = pg.PlotDataItem(x=(median, median), y=(0, 0.5), pen=MEDIAN_LINE_PEN)

        censored_data = self.get_censored_data()

        self.censored_data = pg.ScatterPlotItem(
            x=censored_data[:, 0],
            y=censored_data[:, 1],
            brush=QBrush(Qt.black),
            pen=self.get_pen(width=1, alpha=255),
            # size=np.full((points.shape[0],), 10.1),
        )
        self.censored_data.setZValue(10)
Example #19
0
    def __init__(self, emobj):
        pg.QtGui.QMainWindow.__init__(self)
        self.setWindowTitle('matplotlib and pyqtpgraph integration example')

        self.main_widget = pg.QtGui.QWidget(self)
        self.layout = pg.QtGui.QHBoxLayout(self.main_widget)
        self.persistence_canvas = PersistenceSelector(self.main_widget,
                                                      emobj,
                                                      width=5,
                                                      height=4,
                                                      dpi=100)
        """
        self.glw = pg.LayoutWidget()
        self.b1_b = pg.QtGui.QPushButton('-')
        self.b1_b.clicked.connect(self.b1_clicked)     
        self.b2_b = pg.QtGui.QPushButton('+')
        self.b2_b.clicked.connect(self.b2_clicked)
        self.glw.addWidget(self.b1_b, row=0, col=0)        
        self.glw.addWidget(self.b2_b, row=0, col=1)
        """

        self.plw = pg.PlotWidget()
        s1 = pg.ScatterPlotItem(size=10,
                                pen=pg.mkPen(None),
                                brush=pg.mkBrush(255, 255, 255, 120))
        pos = np.random.randn(10000, 2)
        spots = [{
            'pos': pos[i, :],
            'data': 1,
            'symbol': 'o'
        } for i in range(pos.shape[0])]
        s1.addPoints(spots)
        self.plw.addItem(s1)

        self.layout.addWidget(self.persistence_canvas)
        #self.layout.addWidget(self.glw)
        self.layout.addWidget(self.plw)

        self.main_widget.setFocus()
        self.setCentralWidget(self.main_widget)
Example #20
0
    def proc_ROI(self):
        stat0 = []
        if self.extracted:
            for t, s in zip(self.scatter, self.tlabel):
                self.p0.removeItem(s)
                self.p0.removeItem(t)
        self.scatter = []
        self.tlabel = []
        for n in range(self.nROIs):
            ellipse = self.ROIs[n].ellipse
            yrange = self.ROIs[n].yrange
            xrange = self.ROIs[n].xrange
            x, y = np.meshgrid(xrange, yrange)
            ypix = y[ellipse].flatten()
            xpix = x[ellipse].flatten()
            lam = np.ones(ypix.shape)
            stat0.append({'ypix': ypix, 'xpix': xpix, 'lam': lam, 'npix': ypix.size})
            self.tlabel.append(pg.TextItem(str(n), self.ROIs[n].color, anchor=(0, 0)))
            self.tlabel[-1].setPos(xpix.mean(), ypix.mean())
            self.p0.addItem(self.tlabel[-1])
            self.scatter.append(pg.ScatterPlotItem([xpix.mean()], [ypix.mean()],
                                                   pen=self.ROIs[n].color, symbol='+'))
            self.p0.addItem(self.scatter[-1])
        if not os.path.isfile(self.parent.ops['reg_file']):
            self.parent.ops['reg_file'] = os.path.join(self.parent.basename, 'data.bin')

        F, Fneu, F_chan2, Fneu_chan2, spks, ops, stat = masks_and_traces(self.parent.ops, stat0, self.parent.stat)
        print(spks.shape)
        # print('After', stat[0].keys())
        # print('Orig', self.parent.stat[0].keys())
        self.Fcell = F
        self.Fneu = Fneu
        self.F_chan2 = F_chan2
        self.Fneu_chan2 = Fneu_chan2
        self.Spks = spks
        self.plot_trace()
        self.extracted = True
        self.new_stat = stat
        self.closeGUI.setEnabled(True)
Example #21
0
    def __init__(self,
                 type='curve',
                 name=None,
                 xaxis=np.arange(2048),
                 aspectLocked=False):

        super().__init__(name=name)

        if type == 'curve':
            self.item = PyQtG.PlotCurveItem()
        elif type == 'scatter':
            self.item = PyQtG.ScatterPlotItem()
        else:
            raise Exception(
                'Invalid type for PyQtGraph item. Only "curve" and "scatter" are supported.'
            )

        self.setTitle(title=name)
        self.setAspectLocked(aspectLocked)
        self.X = xaxis
        self.showGrid(x=1, y=1)
        self.addItem(self.item)
Example #22
0
 def loadEvePoints(self, eveMeta, eveType):
     if eveType == 'cur':
         item, alpha = self.curEveItem, 200
     else:
         item, alpha = self.prevEveItem, 160
     # Remove the previous item
     if item is not None:
         self.map.removeItem(item)
     # Project the lon,lat into x,y
     eveLocProj = self.projFunc(eveMeta[:, 1:4])
     # Add in all of the new points, size & color set in different function
     scatter = pg.ScatterPlotItem(size=1,
                                  symbol='o',
                                  pen=pg.mkPen(None),
                                  brush=pg.mkBrush(0, 0, 0, alpha))
     scatter.addPoints(x=eveLocProj[:, 0], y=eveLocProj[:, 1])
     self.map.addItem(scatter)
     # Update the scatter item reference
     if eveType == 'cur':
         self.curEveItem = scatter
     else:
         self.prevEveItem = scatter
Example #23
0
 def set_scatter_plot_items(self):
     for index_of_instance, each_graphics_instance in enumerate(
             self.list_of_graphics_menus_instances):
         if not each_graphics_instance.deleted and not each_graphics_instance.table_deleted:
             if each_graphics_instance.visible:
                 for i, v in enumerate(each_graphics_instance.
                                       list_of_lists_of_values_to_show[0]):
                     s1 = pg.ScatterPlotItem(
                         size=10,
                         pen=pg.mkPen(each_graphics_instance.color),
                         brush=pg.mkBrush(each_graphics_instance.color))
                     s1.addPoints(
                         x=each_graphics_instance.
                         list_of_lists_of_values_to_show[0][i],
                         y=each_graphics_instance.
                         list_of_lists_of_values_to_show[1][i],
                         pen=pg.mkPen(each_graphics_instance.color,
                                      width=2),
                     )
                     s1.sigClicked.connect(self._scatter_plot_item_clicked)
                     self.first_plot.addItem(s1)
                     self.list_of_scatter_plot_items.append(s1)
        def __init__(self, parent):
            super().__init__(parent)

            self.setWindowTitle('Association rules scatter plot')
            scatter = self.scatter = pg.ScatterPlotItem(size=5,
                                                        symbol='s',
                                                        pen=pg.mkPen(None))
            plot = self.plot = self.PlotWidget(background='w',
                                               labels=dict(left='Confidence',
                                                           bottom='Support'))
            plot.setScatter(scatter)
            plot.setLimits(xMin=0,
                           xMax=1.02,
                           yMin=0,
                           yMax=1.02,
                           minXRange=0.5,
                           minYRange=0.5)
            self.setCentralWidget(plot)
            plot.addItem(scatter)
            plot.hideButtons()
            self.lastClicked = []
            scatter.sigClicked.connect(self.clicked)
Example #25
0
 def __init__(self, pos, prect, color, parent=None):
     self.prect = prect
     self.pos = pos
     #self.slope = (pos[1,1] - pos[0,1]) / (pos[1,0] - pos[0,0])
     #self.yint  = pos[1,0] - self.slope * pos[0,0]
     self.color = color
     self.pen = pg.mkPen(pg.mkColor(self.color),
                         width=3,
                         style=QtCore.Qt.SolidLine)
     self.ROIplot = pg.PlotDataItem(self.prect[:, 0],
                                    self.prect[:, 1],
                                    pen=self.pen)
     self.dotplot = pg.ScatterPlotItem(pos=self.pos[0, :][np.newaxis],
                                       pen=self.pen,
                                       symbol='+')
     parent.p0.addItem(self.ROIplot)
     parent.p0.addItem(self.dotplot)
     pts = self.inROI(parent.embedding)
     pdist = self.orthproj(parent.embedding[pts, :])
     inds = np.argsort(pdist)
     self.selected = pts[inds[::-1]]
     parent.show()
Example #26
0
 def __init__(self, scatterplot, parent=None):
     super(scatterPlotPlot, self).__init__(parent=parent)
     self.parent = parent
     self.scatterplot = scatterplot
     self.records = self.scatterplot.records
     self.doingPlot = False
     self.paused = False
     self.plotWidget = pg.GraphicsLayoutWidget()
     self.plots = {}
     self.color = 0
     self.paused = False
     self.selectionNameX = 0
     self.selectionNameY = 0
     self.decimateScale = 5000
     self.scatterplot.scatterSelectionChanged.connect(
         self.setSelectionIndex)
     self.plot = self.plotWidget.addPlot(row=0, col=0)
     self.scatterPlot = pg.ScatterPlotItem(size=5, pen=pg.mkPen(None))
     self.plot.addItem(self.scatterPlot)
     self.scatterPlot.sigClicked.connect(self.printPoints)
     self.data1 = []
     self.data2 = []
Example #27
0
    def init_ui(self):
        """"""
        self.setWindowTitle("回测K线图表")
        self.resize(1400, 800)

        # Create chart widget
        self.chart = ChartWidget()
        self.chart.add_plot("candle", hide_x_axis=True)
        self.chart.add_plot("volume", maximum_height=200)
        self.chart.add_item(CandleItem, "candle", "candle")
        self.chart.add_item(VolumeItem, "volume", "volume")
        self.chart.add_cursor()

        # Add scatter item for showing tradings
        self.trade_scatter = pg.ScatterPlotItem()
        candle_plot = self.chart.get_plot("candle")
        candle_plot.addItem(self.trade_scatter)

        # Set layout
        vbox = QtWidgets.QVBoxLayout()
        vbox.addWidget(self.chart)
        self.setLayout(vbox)
Example #28
0
    def plot_data(self, X, y):
        self.clear_plot()

        # get the simple cross validation score
        clf = self.cfg.learner.clf
        scores = cross_validation.cross_val_score(clf, X, y, cv=5)
        score = np.mean(scores)
        self.ui.titleLabel.setText("Accuracy: %.2f" % score)

        # project the data for visualization
        X_proj = clf.fit(X, y).transform(X)

        labels = sorted(np.unique(y))
        for i in labels:
            if USE_GL:
                plot = gl.GLScatterPlotItem(pos=X_proj[y == i, :3],
                                            color=pg.glColor(pg.intColor(i)))
            else:
                plot = pg.ScatterPlotItem(pos=X_proj[y == i, :2],
                                          brush=pg.mkBrush(pg.intColor(i)))
            self.plotWidget.addItem(plot)
            self.plot_items.append(plot)
Example #29
0
    def __init__(self, xlabel, ylabel):

        self.fig = pg.PlotWidget(background='w')
        self.fig.setLabel('bottom', xlabel)
        self.fig.setLabel('left', ylabel)
        self.fig.scene().sigMouseMoved.connect(self.on_mouse_hover)

        self.scatter = pg.ScatterPlotItem()
        self.fig.addItem(self.scatter)
        self.fig.plotItem.addLine(x=0, pen=colours['line'])

        self.text_popup = pg.TextItem(color=colours['line'])
        font = QtGui.QFont()
        font.setPointSize(8)
        font.setBold(True)
        self.text_popup.setFont(font)
        self.text_popup.hide()
        self.fig.addItem(self.text_popup)

        self.region_items = []
        self.regions = None
        self.region_text = None
    def __init__(self, parent=None, widgetSize=(200,200),xlabel='',ylabel=''):
        if parent is not None:
            set_pg_colors(parent)
        super(PsychometricPlot, self).__init__(parent)

        self.xLabel = xlabel
        self.yLabel = ylabel

        self.initialSize = widgetSize
        self.mainPlot = pg.ScatterPlotItem(size=8, symbol='o', pxMode=True,
                                           pen='k', brush='k')
        self.addItem(self.mainPlot)
        # -- Graphical adjustments --
        yAxis = self.getAxis('left')
        self.setLabel('left', self.yLabel ,units='%')
        self.setLabel('bottom', self.xLabel)
        #self.setXRange(0, )
        self.setYRange(-5, 100)
        yAxis.setTicks([[[0,'0'],[50,'50'],[100,'100']],
                        [[25,'25'],[75,'75']]])
        #self.addItem(pg.InfiniteLine(pos=50, angle=0, pen=pg.mkPen('k')))
        yAxis.setGrid(20)