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")
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!