'Given a mpl axes instance, returns a Bokeh LinearAxis object.'

def make_axis(self, ax, location, props):

    tf = props['tickformat']
    tv = props['tickvalues']
    if (tf and any((isinstance(x, string_types) for x in tf))):
        laxis = CategoricalAxis(axis_label=ax.get_label_text())
        assert (np.min(tv) >= 0), 'Assuming    categorical    axis    have    positive-integer    dump    tick    values'
        offset = (np.min(tv) - 1)
        rng = FactorRange(factors=[str(x) for x in tf], offset=offset)
        if (location in ['above', 'below']):
            self.plot.x_range = rng
        else:
            self.plot.y_range = rng
    elif (props['scale'] == 'linear'):
        laxis = LinearAxis(axis_label=ax.get_label_text())
    elif (props['scale'] == 'date'):
        laxis = DatetimeAxis(axis_label=ax.get_label_text())
    self.plot.add_layout(laxis, location)
    label = ax.get_label()
    self.text_props(label, laxis, prefix='axis_label_')
    if (props['nticks'] == 0):
        laxis.major_tick_line_color = None
        laxis.minor_tick_line_color = None
        laxis.major_label_text_color = None
    ticklabels = ax.get_ticklabels()
    if ticklabels:
        self.text_props(ticklabels[0], laxis, prefix='major_label_')
    if self.xkcd:
        laxis.axis_line_width = 3
        laxis.axis_label_text_font = 'Comic    Sans    MS,    Textile,    cursive'
        laxis.axis_label_text_font_style = 'bold'
        laxis.axis_label_text_color = 'black'
        laxis.major_label_text_font = 'Comic    Sans    MS,    Textile,    cursive'
        laxis.major_label_text_font_style = 'bold'
        laxis.major_label_text_color = 'black'
    return laxis
