code: def surface(self, canvas, X, Y, Z, color=None, label=None, **kwargs):
          
          raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library")
docs: Plot a surface for 3d plotting for the inputs (X, Y, Z).
          
          the kwargs are plotting library specific kwargs!