This function is optional!

        Create an imshow controller to stream 
        the image returned by the plot_function. There is an imshow controller written for 
        mmatplotlib, which updates the imshow on changes in axis.
                
        The origin of the image show is (0,0), such that X[0,0] gets plotted at [0,0] of the image!
        
        the kwargs are plotting library specific kwargs!

def imshow_interact(self, canvas, plot_function, extent=None, label=None, vmin=None, vmax=None, **kwargs):
        """
        This function is optional!

        Create an imshow controller to stream 
        the image returned by the plot_function. There is an imshow controller written for 
        mmatplotlib, which updates the imshow on changes in axis.
                
        The origin of the image show is (0,0), such that X[0,0] gets plotted at [0,0] of the image!
        
        the kwargs are plotting library specific kwargs!
        """
        raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library")