docs: def draw(self, points, target=None, **kwargs):
          """
          Called from the fit method, this method draws the UMAP scatter plot,
          from a set of decomposed points in 2 dimensions. This method also
          accepts a third dimension, target, which is used to specify the colors
          of each of the points. If the target is not specified, then the points
          are plotted as a single cloud to show similar documents.
          """
          # Resolve the labels with the classes
          labels = self.labels if self.labels is not None else self.classes_
          if len(labels) != len(self.classes_):
              raise YellowbrickValueError((
                  "number of supplied labels ({}) does not "
                  "match the number of classes ({})"
              ).format(len(labels), len(self.classes_)))
  
  
          # Create the color mapping for the labels.
          self.color_values_ = resolve_colors(
              n_colors=len(labels), colormap=self.colormap, colors=self.colors)
          colors = dict(zip(labels, self.color_values_))
  
          # Transform labels into a map of class to label
          labels = dict(zip(self.classes_, labels))
  
          # Expand the points into vectors of x and y for scatter plotting,
          # assigning them to their label if the label has been passed in.
          # Additionally, filter classes not specified directly by the user.
          series = defaultdict(lambda: {'x':[], 'y':[]})
  
          if target is not None:
              for t, point in zip(target, points):
                  label = labels[t]
                  series[label]['x'].append(point[0])
                  series[label]['y'].append(point[1])
          else:
              label = self.classes_[0]
              for x,y in points:
                  series[label]['x'].append(x)
                  series[label]['y'].append(y)
  
          # Plot the points
          for label, points in series.items():
              self.ax.scatter(
                  points['x'], points['y'], c=colors[label],
                  alpha=self.alpha, label=label
              )