docs: function () {
  		var series = this,
  			chart = series.chart,
  			stacking = series.options.stacking,
  			categories = series.xAxis.categories,
  			yAxis = series.yAxis,
  			data = series.data,
  			i = data.length;
  
  		// do the translation
  		while (i--) {
  			var point = data[i],
  				xValue = point.x,
  				yValue = point.y,
  				yBottom = point.low,
  				stack = yAxis.stacks[(yValue < 0 ? '-' : '') + series.stackKey],
  				pointStack,
  				pointStackTotal;
  			point.plotX = series.xAxis.translate(xValue);
  
  			// calculate the bottom y value for stacked series
  			if (stacking && series.visible && stack && stack[xValue]) {
  				pointStack = stack[xValue];
  				pointStackTotal = pointStack.total;
  				pointStack.cum = yBottom = pointStack.cum - yValue; // start from top
  				yValue = yBottom + yValue;
  
  				if (stacking === 'percent') {
  					yBottom = pointStackTotal ? yBottom * 100 / pointStackTotal : 0;
  					yValue = pointStackTotal ? yValue * 100 / pointStackTotal : 0;
  				}
  
  				point.percentage = pointStackTotal ? point.y * 100 / pointStackTotal : 0;
  				point.stackTotal = pointStackTotal;
  			}
  
  			if (defined(yBottom)) {
  				point.yBottom = yAxis.translate(yBottom, 0, 1, 0, 1);
  			}
  
  			// set the y value
  			if (yValue !== null) {
  				point.plotY = yAxis.translate(yValue, 0, 1, 0, 1);
  			}
  
  			// set client related positions for mouse tracking
  			point.clientX = chart.inverted ?
  				chart.plotHeight - point.plotX :
  				point.plotX; // for mouse tracking
  
  			// some API data
  			point.category = categories && categories[point.x] !== UNDEFINED ?
  				categories[point.x] : point.x;
  
  		}
  	}