def annotation_heatmap_interact(self, canvas, plot_function, extent, label=None, resolution=<NUM_LIT:15>, **kwargs):
raise NotImplementedError("<STR_LIT>")<EOL>
if plot_function is not None, return an interactive updated
heatmap, which updates on axis events, so that one can zoom in 
and out and the heatmap gets updated. See the matplotlib implementation
in matplot_dep.controllers.

the plot_function returns a pair (X, annotation) to plot, when called with
a new input X (which would be the grid, which is visible on the plot
right now)

:param canvas: the canvas to plot on
:param array-like annotation: the annotation labels for the heatmap
:param [horizontal_min,horizontal_max,vertical_min,vertical_max] extent: the extent of where to place the heatmap
:param str label: the label for the heatmap
:return: a list of both the heatmap and annotation plots [heatmap, annotation], or the interactive update object (alone)
:param plot_function: the function, which generates new data for given input locations X
:param int resolution: the resolution of the interactive plot redraw - this is only needed when giving a plot_function