code: def draw(self, X, y, **kwargs):
          
          # Set the axes limits
          self.ax.set_xlim([-1,1])
          self.ax.set_ylim([-1,1])
  
          # set the colors
          color_values = resolve_colors(
              n_colors=len(self.classes_),
              colormap=self.colormap,
              colors=self.color
          )
  
          colors = dict(zip(self.classes_, color_values))
  
          # Create a data structure to hold the scatter plot representations
          to_plot = {}
          for kls in self.classes_:
              to_plot[kls] = [[], []]
  
          # Add each row of the data set to to_plot for plotting
          # TODO: make this an independent function for override
          for i, row in enumerate(X):
              row_ = np.repeat(np.expand_dims(row, axis=1), 2, axis=1)
              x_, y_ = row_[0], row_[1]
              kls = self.classes_[y[i]]
  
              to_plot[kls][0].append(x_)
              to_plot[kls][1].append(y_)
  
          # Add the scatter plots from the to_plot function
          # TODO: store these plots to add more instances to later
          # TODO: make this a separate function
          for i, kls in enumerate(self.classes_):
              self.ax.scatter(
                  to_plot[kls][0],
                  to_plot[kls][1],
                  marker=next(self.markers),
                  color=colors[kls],
                  label=str(kls),
                  alpha=self.alpha,
                  **kwargs)
  
          self.ax.axis('equal')
docs: Called from the fit method, this method creates a scatter plot that
          draws each instance as a class or target colored point, whose location
          is determined by the feature data set.