docs: def interpolate(self, transform, transitions=None, Y=None):
          """Interpolate new data onto a transformation of the graph data
  
          One of either transitions or Y should be provided
  
          Parameters
          ----------
  
          transform : array-like, shape=[n_samples, n_transform_features]
  
          transitions : array-like, optional, shape=[n_samples_y, n_samples]
              Transition matrix from `Y` (not provided) to `self.data`
  
          Y: array-like, optional, shape=[n_samples_y, n_dimensions]
              new data for which an affinity matrix is calculated
              to the existing data. `n_features` must match
              either the ambient or PCA dimensions
  
          Returns
          -------
  
          Y_transform : array-like, [n_samples_y, n_features or n_pca]
              Transition matrix from `Y` to `self.data`
  
          Raises
          ------
          ValueError: if neither `transitions` nor `Y` is provided
          """
          if transitions is None:
              if Y is None:
                  raise ValueError(
                      "Either `transitions` or `Y` must be provided.")
              else:
                  transitions = self.extend_to_data(Y)
          Y_transform = transitions.dot(transform)
          return Y_transform