code: def _select_features_to_plot(self, X):
          
          if self.feature_index:
              if self.feature_names:
                  raise YellowbrickWarning(
                      'Both feature_index and feature_names '
                      'are specified. feature_names is ignored'
                  )
              if (min(self.feature_index) < 0
                      or max(self.feature_index) >= X.shape[1]):
                  raise YellowbrickValueError('Feature index is out of range')
          elif self.feature_names:
              self.feature_index = []
              features_list = self.features_.tolist()
              for feature_name in self.feature_names:
                  try:
                      self.feature_index.append(
                          features_list.index(feature_name)
                      )
                  except ValueError:
                      raise YellowbrickValueError(
                          '{} not in labels'.format(feature_name)
                      )
docs: Select features to plot.
  
          feature_index is always used as the filter and
          if filter_names is supplied, a new feature_index
          is computed from those names.