code: function(labels, direction, step, start_offset, font_offsets, extra_font_options) {
      function x_offset(value) {
        return value * direction[0];
      }
      
      function y_offset(value) {
        return value * direction[1];
      }
      
      /* Start at the origin */
      var x = this.x_padding_left - 1 + x_offset(start_offset),
          y = this.options.height - this.y_padding_bottom + y_offset(start_offset),
          pathString = '',
          i,
          font_options = {};
      Helpers.extend(font_options, this.font_options);
      Helpers.extend(font_options, extra_font_options || {});
  
      for (i = 0; i < labels.length; i++) {
        pathString += 'M' + x + ',' + y;
        if (typeof labels[i] !== 'undefined' && (labels[i] + '').length > 0) {
          pathString += 'L' + (x + y_offset(5)) + ',' + (y + x_offset(5));
          this.paper.text(x + font_offsets[0], y - font_offsets[1], labels[i]).attr(font_options).toFront();
        }
        x = x + x_offset(step);
        y = y + y_offset(step);
      }
  
      this.paper.path(pathString).attr({ stroke: this.options.label_colour });
    }
docs: /* Axis label markers