flotr2.nolibs.js
function(){
    var a = this.axes,
      xaxis, yaxis, range;

    _.each(this.series, function (series) {
      range = series.getRange();
      if (range) {
        xaxis = series.xaxis;
        yaxis = series.yaxis;
        xaxis.datamin = Math.min(range.xmin, xaxis.datamin);
        xaxis.datamax = Math.max(range.xmax, xaxis.datamax);
        yaxis.datamin = Math.min(range.ymin, yaxis.datamin);
        yaxis.datamax = Math.max(range.ymax, yaxis.datamax);
        xaxis.used = (xaxis.used || range.xused);
        yaxis.used = (yaxis.used || range.yused);
      }
    }, this);

    // Check for empty data, no data case (none used)
    if (!a.x.used && !a.x2.used) a.x.used = true;
    if (!a.y.used && !a.y2.used) a.y.used = true;

    _.each(a, function (axis) {
      axis.calculateRange();
    });

    var
      types = _.keys(flotr.graphTypes),
      drawn = false;

    _.each(this.series, function (series) {
      if (series.hide) return;
      _.each(types, function (type) {
        if (series[type] && series[type].show) {
          this.extendRange(type, series);
          drawn = true;
        }
      }, this);
      if (!drawn) {
        this.extendRange(this.options.defaultType, series);
      }
    }, this);
  }
function(){
    var a = this.axes,
      xaxis, yaxis, range;

    _.each(this.series, function (series) {
      range = series.getRange();
      if (range) {
        xaxis = series.xaxis;
        yaxis = series.yaxis;
        xaxis.datamin = Math.min(range.xmin, xaxis.datamin);
        xaxis.datamax = Math.max(range.xmax, xaxis.datamax);
        yaxis.datamin = Math.min(range.ymin, yaxis.datamin);
        yaxis.datamax = Math.max(range.ymax, yaxis.datamax);
        xaxis.used = (xaxis.used || range.xused);
        yaxis.used = (yaxis.used || range.yused);
      }
    }, this);

    // Check for empty data, no data case (none used)
    if (!a.x.used && !a.x2.used) a.x.used = true;
    if (!a.y.used && !a.y2.used) a.y.used = true;

    _.each(a, function (axis) {
      axis.calculateRange();
    });

    var
      types = _.keys(flotr.graphTypes),
      drawn = false;

    _.each(this.series, function (series) {
      if (series.hide) return;
      _.each(types, function (type) {
        if (series[type] && series[type].show) {
          this.extendRange(type, series);
          drawn = true;
        }
      }, this);
      if (!drawn) {
        this.extendRange(this.options.defaultType, series);
      }
    }, this);
  }
function ( ) { var a = this . axes , xaxis , yaxis , range ; _ . each ( this . series , function ( series ) { range = series . getRange ( ) ; if ( range ) { xaxis = series . xaxis ; yaxis = series . yaxis ; xaxis . datamin = Math . min ( range . xmin , xaxis . datamin ) ; xaxis . datamax = Math . max ( range . xmax , xaxis . datamax ) ; yaxis . datamin = Math . min ( range . ymin , yaxis . datamin ) ; yaxis . datamax = Math . max ( range . ymax , yaxis . datamax ) ; xaxis . used = ( xaxis . used || range . xused ) ; yaxis . used = ( yaxis . used || range . yused ) ; } } , this ) ; // Check for empty data, no data case (none used) if ( ! a . x . used && ! a . x2 . used ) a . x . used = true ; if ( ! a . y . used && ! a . y2 . used ) a . y . used = true ; _ . each ( a , function ( axis ) { axis . calculateRange ( ) ; } ) ; var types = _ . keys ( flotr . graphTypes ) , drawn = false ; _ . each ( this . series , function ( series ) { if ( series . hide ) return ; _ . each ( types , function ( type ) { if ( series [ type ] && series [ type ] . show ) { this . extendRange ( type , series ) ; drawn = true ; } } , this ) ; if ( ! drawn ) { this . extendRange ( this . options . defaultType , series ) ; } } , this ) ; }
Function determines the min and max values for the xaxis and yaxis.

TODO logarithmic range validation (consideration of 0)
Function determines the min and max values for the xaxis and yaxis .