def __init__(self, ax, plot_function, plot_limits, resolution=<NUM_LIT:50>, update_lim=None, **kwargs):
super(BufferedAxisChangedController, self).__init__(ax, update_lim=update_lim)<EOL>self.resolution = resolution<EOL>self.plot_function = plot_function<EOL>xmin, xmax, ymin, ymax = plot_limits<EOL>self._x_lim = xmin, xmax<EOL>self._y_lim = ymin, ymax<EOL>self.view = self._init_view(self.ax, self.recompute_X(buffered=False), xmin, xmax, ymin, ymax, **kwargs)<EOL>
Buffered axis changed controller. Controls the buffer and handles update events for when the axes changed.

Updated plotting will be after first reload (first time will be within plot limits, after that the limits will be buffered)

:param plot_function:
    function to use for creating image for plotting (return ndarray-like)
    plot_function gets called with (2D!) Xtest grid if replotting required
:type plot_function: function
:param plot_limits:
    beginning plot limits [xmin, ymin, xmax, ymax]

:param kwargs: additional kwargs are for pyplot.imshow(**kwargs)