       @plot_view.viewstate.get('height'))
     while current_tick <= last_tick
       x_ticks.push(current_tick)
-      text_width = can_ctx.measureText(current_tick.toString()).width
+      text_width = can_ctx.measureText(@tick_label(current_tick)).width
       x = @plot_view.viewstate.xpos(@mapper.map_screen(current_tick))
       txtpos = ( x - (text_width/2))
       if txtpos > last_tick_end
-        can_ctx.fillText(
-          current_tick.toString(), txtpos, 20)
+        can_ctx.fillText(@tick_label(current_tick), txtpos, 20)
         last_tick_end = (txtpos + text_width) + 10
       @plot_view.ctx.beginPath()
       @plot_view.ctx.moveTo(x, 0)

    @render_end()
    return


  render_x : ->
    can_ctx = @plot_view.x_can_ctx

    @set_mapper()
    safebind(this, @model, 'change:data_range', @set_mapper)
    safebind(this, @mget_ref('data_range'), 'change', @request_render)

  set_mapper : () ->
    @mapper = new Bokeh.LinearMapper({},
      data_range : @mget_ref('data_range')
