       suffix_mantissa = _.first(mantissas) * @base
       @allowed_mantissas = _.flatten([prefix_mantissa, mantissas,
                                       suffix_mantissa])
+
+      @base_factor = if @min_magnitude == 0.0 then 1.0 else @min_magnitude
 
     get_min_interval: () ->
       return @min_interval

      start_factor = Math.floor(data_low / interval)
      end_factor   = Math.ceil(data_high / interval)
      factors = arange(start_factor, end_factor + 1)
      return factors.map((f) -> return f * interval)
  
  # FIXME Hopefully we won't actually need this.
  class SingleIntervalScale extends AbstractScale

      data_range = float(data_high) - float(data_low)
      ideal_interval = @get_ideal_interval(data_low, data_high)

      interval_exponent = Math.floor(log(ideal_interval / @base_factor, @base))
      ideal_magnitude = Math.pow(@base, interval_exponent) * @base_factor
      ideal_mantissa = ideal_interval / ideal_magnitude

      # An untested optimization.
