Ejemplo n.º 1
0
    def __init__(self, parent):
        super(ImagePlot, self).__init__(parent)

        self.verticalScaleDivision = ScaleDivision(20, 20000, 100)
        self.verticalScaleTransform = CoordinateTransform(20, 20000, 100, 0, 0)

        self.verticalScale = VerticalScaleWidget(self,
                                                 self.verticalScaleDivision,
                                                 self.verticalScaleTransform)
        self.verticalScale.setTitle("Note")  #("Frequency (Hz)")
        self.verticalScale.scaleBar.setTickFormatter(tickFormatter)

        self.horizontalScaleDivision = ScaleDivision(0, 10, 100)
        self.horizontalScaleTransform = CoordinateTransform(0, 10, 100, 0, 0)

        self.horizontalScale = HorizontalScaleWidget(
            self, self.horizontalScaleDivision, self.horizontalScaleTransform)
        self.horizontalScale.setTitle("Time (s)")

        self.colorScaleDivision = ScaleDivision(-140, 0, 100)
        self.colorScaleTransform = CoordinateTransform(-140, 0, 100, 0, 0)

        self.colorScale = ColorScaleWidget(self, self.colorScaleDivision,
                                           self.colorScaleTransform)
        self.colorScale.setTitle("PSD (dB A)")

        self.canvasWidget = CanvasWidget(self, self.verticalScaleTransform,
                                         self.horizontalScaleTransform)
        #self.canvasWidget.setTrackerFormatter(lambda x, y: "%.2f s, %d Hz" % (x, y))
        self.canvasWidget.setTrackerFormatter(TrackerFormatter)

        plotLayout = QtWidgets.QGridLayout()
        plotLayout.setSpacing(0)
        plotLayout.setContentsMargins(0, 0, 0, 0)
        #plotLayout.addWidget(self.verticalScale, 0, 0)
        #plotLayout.addWidget(self.canvasWidget, 0, 1)
        #plotLayout.addWidget(self.colorScale, 0, 2)
        #plotLayout.addWidget(self.horizontalScale, 1, 1)
        plotLayout.addWidget(self.colorScale, 0, 0)
        plotLayout.addWidget(self.canvasWidget, 0, 1)
        plotLayout.addWidget(self.verticalScale, 0, 2)
        plotLayout.addWidget(self.horizontalScale, 1, 1)

        self.setLayout(plotLayout)

        self.needfullreplot = False

        # attach a plot image
        self.plotImage = PlotImage()
        self.canvasWidget.attach(self.plotImage)

        self.setlinfreqscale()

        self.setspecrange(-140., 0.)

        # need to replot here for the size Hints to be computed correctly (depending on axis scales...)
        self.update()
Ejemplo n.º 2
0
    def __init__(self, parent, logger):
        super(HistPlot, self).__init__()

        # store the logger instance
        self.logger = logger

        self.verticalScaleDivision = ScaleDivision(-140, 0, 100)
        self.verticalScaleTransform = CoordinateTransform(-140, 0, 100, 0, 0)

        self.verticalScale = VerticalScaleWidget(self,
                                                 self.verticalScaleDivision,
                                                 self.verticalScaleTransform)
        self.verticalScale.setTitle("PSD (dB A)")

        self.horizontalScaleDivision = ScaleDivision(44, 22000, 100)
        self.horizontalScaleTransform = CoordinateTransform(
            44, 22000, 100, 0, 0)

        self.horizontalScale = HorizontalScaleWidget(
            self, self.horizontalScaleDivision, self.horizontalScaleTransform)
        self.horizontalScale.setTitle("Frequency (Hz)")

        self.canvasWidget = CanvasWidget(self, self.verticalScaleTransform,
                                         self.horizontalScaleTransform)
        self.canvasWidget.setTrackerFormatter(lambda x, y: "%d Hz, %.1f dB" %
                                              (x, y))

        plotLayout = QtWidgets.QGridLayout()
        plotLayout.setSpacing(0)
        plotLayout.setContentsMargins(0, 0, 0, 0)
        plotLayout.addWidget(self.verticalScale, 0, 0)
        plotLayout.addWidget(self.canvasWidget, 0, 1)
        plotLayout.addWidget(self.horizontalScale, 1, 1)

        self.setLayout(plotLayout)

        self.needfullreplot = False

        self.horizontalScaleTransform.setLogarithmic()
        self.horizontalScaleDivision.setLogarithmic()

        # insert an additional plot item for the peak bar
        self.bar_peak = HistogramPeakBarItem()
        self.canvasWidget.attach(self.bar_peak)
        self.peak = zeros((1, ))
        self.peak_int = 0
        self.peak_decay = PEAK_DECAY_RATE

        self.histogram = HistogramItem()
        self.histogram.setColor(Qt.Qt.darkGreen)
        self.canvasWidget.attach(self.histogram)

        #need to replot here for the size Hints to be computed correctly (depending on axis scales...)
        self.update()