code: function(value, index, datasetIndex, includeOffset) {
  			var me = this;
  			// 1 is added because we need the length but we have the indexes
  			var offsetAmt = Math.max((me.maxIndex + 1 - me.minIndex - ((me.options.gridLines.offsetGridLines) ? 0 : 1)), 1);
  
  			if (value !== undefined && isNaN(index)) {
  				var labels = me.getLabels();
  				var idx = labels.indexOf(value);
  				index = idx !== -1 ? idx : index;
  			}
  
  			if (me.isHorizontal()) {
  				var innerWidth = me.width - (me.paddingLeft + me.paddingRight);
  				var valueWidth = innerWidth / offsetAmt;
  				var widthOffset = (valueWidth * (index - me.minIndex)) + me.paddingLeft;
  
  				if (me.options.gridLines.offsetGridLines && includeOffset || me.maxIndex === me.minIndex && includeOffset) {
  					widthOffset += (valueWidth / 2);
  				}
  
  				return me.left + Math.round(widthOffset);
  			}
  			var innerHeight = me.height - (me.paddingTop + me.paddingBottom);
  			var valueHeight = innerHeight / offsetAmt;
  			var heightOffset = (valueHeight * (index - me.minIndex)) + me.paddingTop;
  
  			if (me.options.gridLines.offsetGridLines && includeOffset) {
  				heightOffset += (valueHeight / 2);
  			}
  
  			return me.top + Math.round(heightOffset);
  		}
docs: Used to get data value locations.  Value can either be an index or a numerical value