main_box.Add (self.control_panel, 0, wx.EXPAND)
self.SetSizerAndFit(main_box)
- self.y_range = None
self.peak_hold = False
self.peak_vals = None
graphics = plot.PlotGraphics (lines,
title=self.fftsink.title,
xLabel = self._units, yLabel = "dB")
- self.x_range = x_vals[0], x_vals[-1]
- self.plot.Draw (graphics, xAxis=self.x_range, yAxis=self.y_range)
- self.update_y_range ()
+ x_range = x_vals[0], x_vals[-1]
+ ymax = self.fftsink.ref_level
+ ymin = self.fftsink.ref_level - self.fftsink.y_per_div * self.fftsink.y_divs
+ y_range = ymin, ymax
+ self.plot.Draw (graphics, xAxis=x_range, yAxis=y_range, step=self.fftsink.y_per_div)
def set_peak_hold(self, enable):
self.peak_hold = enable
self.peak_vals = None
- def update_y_range (self):
- ymax = self.fftsink.ref_level
- ymin = self.fftsink.ref_level - self.fftsink.y_per_div * self.fftsink.y_divs
- self.y_range = self.plot._axisInterval ('min', ymin, ymax)
-
def on_average(self, evt):
# print "on_average"
self.fftsink.set_average(evt.IsChecked())
def GetXUseScopeTicks(self):
return self._xUseScopeTicks
- def Draw(self, graphics, xAxis = None, yAxis = None, dc = None):
+ def Draw(self, graphics, xAxis = None, yAxis = None, dc = None, step=None):
"""Draw objects in graphics with specified x and y axis.
graphics- instance of PlotGraphics with list of PolyXXX objects
xAxis - tuple with (min, max) axis range to view
xticks = None
xTextExtent= (0,0) # No text for ticks
if self._ySpec is not 'none':
- yticks = self._ticks(yAxis[0], yAxis[1])
+ yticks = self._ticks(yAxis[0], yAxis[1], step)
yTextExtentBottom= dc.GetTextExtent(yticks[0][1])
yTextExtentTop = dc.GetTextExtent(yticks[-1][1])
yTextExtent= (max(yTextExtentBottom[0],yTextExtentTop[0]),
pt[1]-0.5*h)
text = 0 # axis values not drawn on right side
- def _ticks(self, lower, upper):
+ def _ticks(self, lower, upper, step=None):
ideal = (upper-lower)/7.
log = _numpy.log10(ideal)
power = _numpy.floor(log)
else:
digits = -int(power)
format = '%'+`digits+2`+'.'+`digits`+'f'
+ #force grid when step is not None
+ if step is not None: grid = step
ticks = []
t = -grid*_numpy.floor(-lower/grid)
while t <= upper:
+ if t == -0: t = 0 #remove neg zero condition
ticks.append( (t, format % (t,)) )
t = t + grid
return ticks