'Return the sequence of ticks (colorbar data locations),
ticklabels (strings), and the corresponding offset string.'

def _ticker(self):

    locator = self.locator
    formatter = self.formatter
    if (locator is None):
        if (self.boundaries is None):
            if isinstance(self.norm, colors.NoNorm):
                nv = len(self._values)
                base = (1 + int((nv / 10)))
                locator = ticker.IndexLocator(base=base, offset=0)
            elif isinstance(self.norm, colors.BoundaryNorm):
                b = self.norm.boundaries
                locator = ticker.FixedLocator(b, nbins=10)
            elif isinstance(self.norm, colors.LogNorm):
                locator = ticker.LogLocator(subs=u'all')
            elif isinstance(self.norm, colors.SymLogNorm):
                locator = ticker.SymmetricalLogLocator(subs=np.arange(1, 10), linthresh=self.norm.linthresh, base=10)
            elif mpl.rcParams[u'_internal.classic_mode']:
                locator = ticker.MaxNLocator()
            else:
                locator = ticker.AutoLocator()
        else:
            b = self._boundaries[self._inside]
            locator = ticker.FixedLocator(b, nbins=10)
    if (isinstance(self.norm, colors.NoNorm) and (self.boundaries is None)):
        intv = (self._values[0], self._values[(-1)])
    else:
        intv = (self.vmin, self.vmax)
    locator.create_dummy_axis(minpos=intv[0])
    formatter.create_dummy_axis(minpos=intv[0])
    locator.set_view_interval(*intv)
    locator.set_data_interval(*intv)
    formatter.set_view_interval(*intv)
    formatter.set_data_interval(*intv)
    b = np.array(locator())
    if isinstance(locator, ticker.LogLocator):
        eps = 1e-10
        b = b[((b <= (intv[1] * (1 + eps))) & (b >= (intv[0] * (1 - eps))))]
    else:
        eps = ((intv[1] - intv[0]) * 1e-10)
        b = b[((b <= (intv[1] + eps)) & (b >= (intv[0] - eps)))]
    self._tick_data_values = b
    ticks = self._locate(b)
    formatter.set_locs(b)
    ticklabels = [formatter(t, i) for (i, t) in enumerate(b)]
    offset_string = formatter.get_offset()
    return (ticks, ticklabels, offset_string)
