code: function setScale() {
  			var type,
  				i;
  
  			oldMin = min;
  			oldMax = max;
  
  			// get data extremes if needed
  			getSeriesExtremes();
  			
  			// PATCH by Simon Fishel
              // 
              // call the tickRenderStart hook to format the tick spacing based on the axis extremes
              //
              // + if(hooks.tickRenderStart) {
              // +     hooks.tickRenderStart(options, getExtremes(), chart);
              // + }
              
              if(hooks.tickRenderStart) {
                  hooks.tickRenderStart(options, getExtremes(), chart);
              }
  
  			// get fixed positions based on tickInterval
  			setTickPositions();
  
  			// the translation factor used in translate function
  			oldTransA = transA;
  			transA = axisLength / ((max - min) || 1);
  
  			// reset stacks
  			if (!isXAxis) {
  				for (type in stacks) {
  					for (i in stacks[type]) {
  						stacks[type][i].cum = stacks[type][i].total;
  					}
  				}
  			}
  
  			// mark as dirty if it is not already set to dirty and extremes have changed
  			if (!axis.isDirty) {
  				axis.isDirty = (min !== oldMin || max !== oldMax);
  			}
  
  		}
docs: Set the scale based on data min and max, user set min and max or options