def METHOD_NAME(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()