code: def component_layout(
      data, n_components, component_labels, dim, metric="euclidean", metric_kwds={}
  ):
      
  
      component_centroids = np.empty((n_components, data.shape[1]), dtype=np.float64)
  
      for label in range(n_components):
          component_centroids[label] = data[component_labels == label].mean(axis=0)
  
      distance_matrix = pairwise_distances(
          component_centroids, metric=metric, **metric_kwds
      )
      affinity_matrix = np.exp(-distance_matrix ** 2)
  
      component_embedding = SpectralEmbedding(
          n_components=dim, affinity="precomputed"
      ).fit_transform(affinity_matrix)
      component_embedding /= component_embedding.max()
  
      return component_embedding
docs: Provide a layout relating the separate connected components. This is done
      by taking the centroid of each component and then performing a spectral embedding
      of the centroids.
  
      Parameters
      ----------
      data: array of shape (n_samples, n_features)
          The source data -- required so we can generate centroids for each
          connected component of the graph.
  
      n_components: int
          The number of distinct components to be layed out.
  
      component_labels: array of shape (n_samples)
          For each vertex in the graph the label of the component to
          which the vertex belongs.
  
      dim: int
          The chosen embedding dimension.
  
      metric: string or callable (optional, default 'euclidean')
          The metric used to measure distances among the source data points.
  
      metric_kwds: dict (optional, default {})
          Keyword arguments to be passed to the metric function.
  
      Returns
      -------
      component_embedding: array of shape (n_components, dim)
          The ``dim``-dimensional embedding of the ``n_components``-many
          connected components.