Show the image stored in X on the canvas.
        
        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(self, canvas, X, extent=None, label=None, vmin=None, vmax=None, **kwargs):
        """
        Show the image stored in X on the canvas.
        
        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")