code: def contour(self, canvas, X, Y, C, Z=None, color=None, label=None, **kwargs):
          
          raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library")
docs: Make a contour plot at (X, Y) with heights/colors stored in C on the canvas.
          
          if Z is not None: make 3d contour plot at (X, Y, Z) with heights/colors stored in C on the canvas.
          
          the kwargs are plotting library specific kwargs!