       axis_label = x_axis_label
       if axis_label.length != 0
         xaxis.axis_label = axis_label
-      xgrid = new models.Grid({plot: this, dimension: 0, ticker: xaxis.ticker})
+      @xgrid = new models.Grid({plot: this, dimension: 0, ticker: xaxis.ticker})
       if x_axis_location == "above"
         this.above = (this.above ? []).concat([xaxis])
       else if x_axis_location == "below"
         this.below = (this.below ? []).concat([xaxis])
+      @add_renderers(xaxis, @xgrid)
 
     y_axiscls = @_get_axis_class(y_axis_type, this.y_range)
     if y_axiscls?


      return result

  _fixup_values: (cls, source, attrs) ->
    for name, value of attrs
      [prop, ...] = cls.prototype.props[name]

      if prop.prototype.dataspec
        if value?
          if _.isArray(value)
            source.data[name] = value
            attrs[name] = { field: name }
          else if _.isNumber(value) or _.isString(value) # or Date?
            attrs[name] = { value: value }

  _glyph: (cls, params, args) ->
    params = params.split(",")

      axis_label = y_axis_label
      if axis_label.length != 0
        yaxis.axis_label = axis_label
      @ygrid = new models.Grid({plot: this, dimension: 1, ticker: yaxis.ticker})
      if y_axis_location == "left"
        this.left = (this.left ? []).concat([yaxis])
      else if y_axis_location == "right"
        this.right = (this.right ? []).concat([yaxis])
      @add_renderers(yaxis, @ygrid)

    @add_tools(@_process_tools(tools)...)

