docs: function () {
  		
  		var series = this,
  			yAxis = series.yAxis,
  			options = series.options,
  			center = yAxis.center;
  			
  		series.generatePoints();
  		
  		each(series.points, function (point) {
  			
  			var dialOptions = merge(options.dial, point.dial),
  				radius = (pInt(pick(dialOptions.radius, 80)) * center[2]) / 200,
  				baseLength = (pInt(pick(dialOptions.baseLength, 70)) * radius) / 100,
  				rearLength = (pInt(pick(dialOptions.rearLength, 10)) * radius) / 100,
  				baseWidth = dialOptions.baseWidth || 3,
  				topWidth = dialOptions.topWidth || 1,
  				overshoot = options.overshoot,
  				rotation = yAxis.startAngleRad + yAxis.translate(point.y, null, null, null, true);
  
  			// Handle the wrap and overshoot options
  			if (overshoot && typeof overshoot === 'number') {
  				overshoot = overshoot / 180 * Math.PI;
  				rotation = Math.max(yAxis.startAngleRad - overshoot, Math.min(yAxis.endAngleRad + overshoot, rotation));			
  			
  			} else if (options.wrap === false) {
  				rotation = Math.max(yAxis.startAngleRad, Math.min(yAxis.endAngleRad, rotation));
  			}
  
  			rotation = rotation * 180 / Math.PI;
  				
  			point.shapeType = 'path';
  			point.shapeArgs = {
  				d: dialOptions.path || [
  					'M', 
  					-rearLength, -baseWidth / 2, 
  					'L', 
  					baseLength, -baseWidth / 2,
  					radius, -topWidth / 2,
  					radius, topWidth / 2,
  					baseLength, baseWidth / 2,
  					-rearLength, baseWidth / 2,
  					'z'
  				],
  				translateX: center[0],
  				translateY: center[1],
  				rotation: rotation
  			};
  			
  			// Positions for data label
  			point.plotX = center[0];
  			point.plotY = center[1];
  		});
  	}