def __init__(self, parent): super(TimePlot, self).__init__() self.logger = logging.getLogger(__name__) self.verticalScaleDivision = ScaleDivision(-1, 1, 100) self.verticalScaleTransform = CoordinateTransform(-1, 1, 100, 0, 0) self.verticalScale = VerticalScaleWidget(self, self.verticalScaleDivision, self.verticalScaleTransform) self.verticalScale.setTitle("Signal") self.horizontalScaleDivision = ScaleDivision(-1, 1, 100) self.horizontalScaleTransform = CoordinateTransform(-1, 1, 100, 0, 0) self.horizontalScale = HorizontalScaleWidget(self, self.horizontalScaleDivision, self.horizontalScaleTransform) self.horizontalScale.setTitle("Time (ms)") self.canvasWidget = GlCanvasWidget(self, self.verticalScaleTransform, self.horizontalScaleTransform) self.canvasWidget.setTrackerFormatter(lambda x, y: "%.3g ms, %.3g" % (x, y)) self.legendWidget = LegendWidget(self, self.canvasWidget) 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) plotLayout.addWidget(self.legendWidget, 0, 2) self.setLayout(plotLayout) self.legendWidget.hide() self.needfullreplot = False self.curve = CurveItem() self.curve.setColor(QtGui.QColor(Qt.Qt.red)) # gives a title to the curve for the legend self.curve.setTitle("Ch1") self.canvasWidget.attach(self.curve) self.curve2 = CurveItem() self.curve2.setColor(QtGui.QColor(Qt.Qt.blue)) # gives a title to the curve for the legend self.curve2.setTitle("Ch2") # self.curve2 will be attached when needed # need to replot here for the size Hints to be computed correctly (depending on axis scales...) self.update() self.xmin = 0. self.xmax = 1. self.canvas_width = 0 self.dual_channel = False self.paused = False self.canvasWidget.resized.connect(self.canvasResized)
def __init__(self, parent, logger=None): super(SpectrumPlotWidget, self).__init__(parent) self.x1 = array([0.1, 0.5, 1.]) self.x2 = array([0.5, 1., 2.]) self.needtransform = False self.paused = False self.peaks_enabled = True self.peak = zeros((3, )) self.peak_int = zeros((3, )) self.peak_decay = ones((3, )) * PEAK_DECAY_RATE self.verticalScaleDivision = ScaleDivision(0, 1, 100) self.verticalScaleTransform = CoordinateTransform(0, 1, 100, 0, 0) self.verticalScale = VerticalScaleWidget(self, self.verticalScaleDivision, self.verticalScaleTransform) self.verticalScale.setTitle("PSD (dB)") self.horizontalScaleDivision = ScaleDivision(0, 22000, 100) self.horizontalScaleTransform = CoordinateTransform( 0, 22000, 100, 0, 0) self.horizontalScale = HorizontalScaleWidget( self, self.horizontalScaleDivision, self.horizontalScaleTransform) self.horizontalScale.setTitle("Frequency (Hz)") self.canvasWidget = GlCanvasWidget(self, self.verticalScaleTransform, self.horizontalScaleTransform) self.canvasWidget.setTrackerFormatter(lambda x, y: "%d Hz, %.1f dB" % (x, y)) self.canvasWidget.resized.connect(self.canvasResized) r_peak = lambda p: 1. + 0. * p g_peak = lambda p: 1. - p b_peak = lambda p: 1. - p self.peakQuadsItem = QuadsItem(r_peak, g_peak, b_peak) self.canvasWidget.attach(self.peakQuadsItem) r_signal = lambda p: 0. * p g_signal = lambda p: 0.3 + 0.5 * p b_signal = lambda p: 0. * p self.quadsItem = QuadsItem(r_signal, g_signal, b_signal) self.canvasWidget.attach(self.quadsItem) 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)
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()
def __init__(self, parent, sharedGLWidget, logger=None): super(SpectrumPlotWidget, self).__init__() self.peaks_enabled = True self.peak = zeros((3, )) self.peak_int = zeros((3, )) self.peak_decay = ones((3, )) * PEAK_DECAY_RATE self.x1 = array([0.1, 0.5, 1.]) self.x2 = array([0.5, 1., 2.]) self.y = array([0., 0., 0.]) self.fmax = 1e3 self.transformed_x1 = self.x1 self.transformed_x2 = self.x2 self.baseline_transformed = False self.baseline = 0. self.needtransform = False self.verticalScaleDivision = ScaleDivision(0, 1, 100) self.verticalScaleTransform = CoordinateTransform(0, 1, 100, 0, 0) self.verticalScale = VerticalScaleWidget(self, self.verticalScaleDivision, self.verticalScaleTransform) self.verticalScale.setTitle("PSD (dB)") self.horizontalScaleDivision = ScaleDivision(0, 22000, 100) self.horizontalScaleTransform = CoordinateTransform( 0, 22000, 100, 0, 0) self.horizontalScale = HorizontalScaleWidget( self, self.horizontalScaleDivision, self.horizontalScaleTransform) self.horizontalScale.setTitle("Frequency (Hz)") self.canvasWidget = GlCanvasWidget(self, sharedGLWidget, self.verticalScaleTransform, self.horizontalScaleTransform) self.canvasWidget.setTrackerFormatter(lambda x, y: "%d Hz, %.1f dB" % (x, y)) self.quadsItem = QuadsItem() self.canvasWidget.attach(self.quadsItem) 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)
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()