code: def fit(self, X, y=None):
          
          # arguments to pass to sk_validation_curve
          skvc_kwargs = {
              key: self.get_params()[key]
              for key in (
                  'param_name', 'param_range', 'groups', 'cv', 'scoring',
                  'n_jobs', 'pre_dispatch',
              )
          }
  
          # compute the validation curve and store scores
          curve = sk_validation_curve(self.estimator, X, y, **skvc_kwargs)
          self.train_scores_, self.test_scores_ = curve
  
          # compute the mean and standard deviation of the training data
          self.train_scores_mean_ = np.mean(self.train_scores_, axis=1)
          self.train_scores_std_ = np.std(self.train_scores_, axis=1)
  
          # compute the mean and standard deviation of the test data
          self.test_scores_mean_ = np.mean(self.test_scores_, axis=1)
          self.test_scores_std_ = np.std(self.test_scores_, axis=1)
  
          # draw the curves on the current axes
          self.draw()
          return self
docs: Fits the validation curve with the wrapped estimator and parameter
          array to the specified data. Draws training and test score curves and
          saves the scores to the visualizer.
  
          Parameters
          ----------
          X : array-like, shape (n_samples, n_features)
              Training vector, where n_samples is the number of samples and
              n_features is the number of features.
  
          y : array-like, shape (n_samples) or (n_samples, n_features), optional
              Target relative to X for classification or regression;
              None for unsupervised learning.
  
          Returns
          -------
          self : instance
              Returns the instance of the validation curve visualizer for use in
              pipelines and other sequential transformers.