def METHOD_NAME(self, ax, base_scale=1.2):
    """
    Mouse zoom handler
    """
    def zoom(event):
        cur_xlim = ax.get_xlim()
        cur_ylim = ax.get_ylim()
        xdata = event.xdata  # get event x location
        ydata = event.ydata  # get event y location
        if event.button == 'down':
            # deal with zoom in
            scale_factor = 1 / base_scale
        elif event.button == 'up':
            # deal with zoom out
            scale_factor = base_scale
        else:
            # deal with something that should never happen
            scale_factor = 1
        new_width = (cur_xlim[1] - cur_xlim[0]) * scale_factor
        new_height = (cur_ylim[1] - cur_ylim[0]) * scale_factor
        relx = (cur_xlim[1] - xdata)/(cur_xlim[1] - cur_xlim[0])
        rely = (cur_ylim[1] - ydata)/(cur_ylim[1] - cur_ylim[0])
        self.zoom_x_limits = [xdata - new_width * (1-relx), xdata + new_width * relx]
        self.zoom_y_limits = [ydata - new_height * (1-rely), ydata + new_height * rely]
        ax.set_xlim(self.zoom_x_limits )
        ax.set_ylim(self.zoom_y_limits)
        ax.figure.canvas.draw()
    fig = ax.get_figure()  # get the figure of interest
    fig.canvas.mpl_connect('scroll_event', zoom)
    return zoom