code: def draw_instances(self, X, y, **kwargs):
          
          # Get alpha from param or default
          alpha = self.alpha or 0.25
  
          for idx in range(len(X)):
              Xi = X[idx]
              yi = y[idx]
  
              # TODO: generalize this duplicated code into a single function
              if isinstance(yi, str):
                  label = yi
              else:
                  # TODO: what happens if yi is not in classes?!
                  label = self.classes_[yi]
  
              self.ax.plot(
                  self._increments, Xi,
                  color=self._colors[label], alpha=alpha, **kwargs
              )
  
          return self.ax
docs: Draw the instances colored by the target y such that each line is a
          single instance. This is the "slow" mode of drawing, since each
          instance has to be drawn individually. However, in so doing, the
          density of instances in braids is more apparent since lines have an
          independent alpha that is compounded in the figure.
  
          This is the default method of drawing.
  
          Parameters
          ----------
          X : ndarray of shape n x m
              A matrix of n instances with m features
  
          y : ndarray of length n
              An array or series of target or class values
  
          Notes
          -----
          This method can be used to draw additional instances onto the parallel
          coordinates before the figure is finalized.