class_docstr: Interactive visualisation of embeddings.
  
  Displays a scatterplot that can be embedded inside a Jupyter notebook.
code: def _get_points(self):
      embeddings = self.embeddings
      classes = self.classes
      if (self.label_flag) and (classes is not None):
          data = pd.DataFrame(embeddings)
          data.columns = ["ivis 1", "ivis 2"]
          data["label"] = classes
          num_ks = len(np.unique(classes))
          color_key = list(enumerate(Sets1to3[0:num_ks]))
  
          embed = {
              k: hv.Points(
                  data.values[classes == k, :],
                  ["ivis 1", "ivis 2"],
                  "k",
                  label=str(k),
              ).opts(color=v, size=0)
              for k, v in color_key
          }
          dse = dynspread(
              datashade(
                  hv.NdOverlay(embed, kdims=["k"]),
                  aggregator=ds.by("k", ds.count()),
              )
          )
          color_points = hv.NdOverlay(
              {
                  k: hv.Points([0, 0]).opts(color=v, size=0)
                  for k, v in color_key
              }
          )
          points = color_points * dse
      else:
          points = datashade(hv.Points(embeddings))
  
      points.opts(height=400, width=500, xaxis=None, yaxis=None)
      return points
  
file_path: ivis/ivis/utils/vis_utils.py
imports: import pandas
  import numpy
label_desc: Use image node_id 2 for calling the EmbeddingsExplorer obj's underlying member method code with example usage: obj._get_points() and returns: points