code: def fit(self, X, y=None, **fit_params):
          
  
          # Handle the feature names if they're None.
          if self.features_ is None:
  
              # If X is a data frame, get the columns off it.
              if is_dataframe(X):
                  self.features_ = np.array(X.columns)
  
              # Otherwise create numeric labels for each column.
              else:
                  _, ncols = X.shape
                  self.features_ = np.arange(0, ncols)
  
          return self
docs: This method performs preliminary computations in order to set up the
          figure or perform other analyses. It can also call drawing methods in
          order to set up various non-instance related figure elements.
  
          This method must return self.