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()