Fill along the xaxis between lower and upper.
        
        the kwargs are plotting library specific kwargs!

def fill_between(self, canvas, X, lower, upper, color=None, label=None, **kwargs):
        """
        Fill along the xaxis between lower and upper.
        
        the kwargs are plotting library specific kwargs!
        """
        raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library")