code: def scatter(self, canvas, X, Y, Z=None, color=None, vmin=None, vmax=None, label=None, **kwargs):
          
          raise NotImplementedError("Implement all plot functions in AbstractPlottingLibrary in order to use your own plotting library")
docs: Make a scatter plot between X and Y on the canvas given.
          
          the kwargs are plotting library specific kwargs!
          
          :param canvas: the plotting librarys specific canvas to plot on.
          :param array-like X: the inputs to plot.
          :param array-like Y: the outputs to plot.
          :param array-like Z: the Z level to plot (if plotting 3d).
          :param array-like c: the colorlevel for each point.
          :param float vmin: minimum colorscale
          :param float vmax: maximum colorscale
          :param kwargs: the specific kwargs for your plotting library