code: function (e, panning) {
  
  		var chart = this,
  			hoverPoints = chart.hoverPoints,
  			doRedraw;
  
  		// remove active points for shared tooltip
  		if (hoverPoints) {
  			each(hoverPoints, function (point) {
  				point.setState();
  			});
  		}
  
  		each(panning === 'xy' ? [1, 0] : [1], function (isX) { // xy is used in maps
  			var mousePos = e[isX ? 'chartX' : 'chartY'],
  				axis = chart[isX ? 'xAxis' : 'yAxis'][0],
  				startPos = chart[isX ? 'mouseDownX' : 'mouseDownY'],
  				halfPointRange = (axis.pointRange || 0) / 2,
  				extremes = axis.getExtremes(),
  				newMin = axis.toValue(startPos - mousePos, true) + halfPointRange,
  				newMax = axis.toValue(startPos + chart[isX ? 'plotWidth' : 'plotHeight'] - mousePos, true) - halfPointRange;
  
  			if (axis.series.length && newMin > mathMin(extremes.dataMin, extremes.min) && newMax < mathMax(extremes.dataMax, extremes.max)) {
  				axis.setExtremes(newMin, newMax, false, false, { trigger: 'pan' });
  				doRedraw = true;
  			}
  
  			chart[isX ? 'mouseDownX' : 'mouseDownY'] = mousePos; // set new reference for next run
  		});
  
  		if (doRedraw) {
  			chart.redraw(false);
  		}
  		css(chart.container, { cursor: 'move' });
  	}
docs: Pan the chart by dragging the mouse across the pane. This function is called
  on mouse move, and the distance to pan is computed from chartX compared to
  the first chartX position in the dragging operation.