code: def scatterplot(
      points,
      samples=None,
      ids=None,
      link_field=None,
      labels=None,
      sizes=None,
      classes=None,
      backend="plotly",
      **kwargs,
  ):
      """Generates an interactive scatterplot of the given points.
  
      You can attach plots generated by this method to an App session via its
      :attr:`fiftyone.core.session.Session.plots` attribute, which will
      automatically sync the session's view with the currently selected points in
      the plot. To enable this functionality, you must pass ``samples`` to this
      method.
  
      This method supports 2D or 3D visualizations, but interactive point
      selection is only available in 2D.
  
      You can use the ``labels`` parameters to define a coloring for the points,
      and you can use the ``sizes`` parameter to scale the sizes of the points.
  
      Args:
          points: a ``num_points x num_dims`` array-like of points
          samples (None): the :class:`fiftyone.core.collections.SampleCollection`
              whose data is being visualized
          ids (None): an array-like of IDs corresponding to the points. If not
              provided but ``samples`` are provided, the appropriate IDs will be
              extracted from the samples
          link_field (None): a field of ``samples`` whose data corresponds to
              ``points``. Can be any of the following:
  
              -   None, if the points correspond to samples
              -   ``"frames"``, if the points correspond to frames
              -   the name of a :class:`fiftyone.core.labels.Label` field, if the
                  points linked to the labels in this field
          labels (None): data to use to color the points. Can be any of the
              following:
  
              -   the name of a sample field or ``embedded.field.name`` of
                  ``samples`` from which to extract numeric or string values
              -   a :class:`fiftyone.core.expressions.ViewExpression` defining
                  numeric or string values to compute from ``samples`` via
                  :meth:`fiftyone.core.collections.SampleCollection.values`
              -   an array-like of numeric or string values
              -   a list of array-likes of numeric or string values, if
                  ``link_field`` refers to a label list field like
                  :class:`fiftyone.core.labels.Detections`
          sizes (None): data to use to scale the sizes of the points. Can be any
              of the following:
  
              -   the name of a sample field or ``embedded.field.name`` of
                  ``samples`` from which to extract numeric values
              -   a :class:`fiftyone.core.expressions.ViewExpression` defining
                  numeric values to compute from ``samples`` via
                  :meth:`fiftyone.core.collections.SampleCollection.values`
              -   an array-like of numeric values
              -   a list of array-likes of numeric or string values, if
                  ``link_field`` refers to a label list field like
                  :class:`fiftyone.core.labels.Detections`
          classes (None): an list of classes whose points to plot. Only
              applicable when ``labels`` contains strings
          backend ("plotly"): the plotting backend to use. Supported values are
              ``("plotly", "matplotlib")``
          **kwargs: keyword arguments for the backend plotting method:
  
              -   "plotly" backend: :meth:`fiftyone.core.plots.plotly.scatterplot`
              -   "matplotlib" backend: :meth:`fiftyone.core.plots.matplotlib.scatterplot`
  
      Returns:
          one of the following
  
          -   an :class:`InteractivePlot`, if IDs are available
          -   a :class:`fiftyone.core.plots.plotly.PlotlyNotebookPlot`, if IDs
              are not available but you are working with the plotly backend in a
              Jupyter notebook
          -   a plotly or matplotlib figure, otherwise
      """
      backend = _parse_backend(backend)
  
      if backend == "matplotlib":
          from .matplotlib import scatterplot as _scatterplot
      else:
          from .plotly import scatterplot as _scatterplot
  
      return _scatterplot(
          points,
          samples=samples,
          ids=ids,
          link_field=link_field,
          labels=labels,
          sizes=sizes,
          classes=classes,
          **kwargs,
      )
  
imports: import logging
  import fiftyone.core.context
  import fiftyone.core.labels
  import fiftyone.core.patches
  import fiftyone.core.video
label_desc: Use image node_id 7 for calling a global function with example usage: scatterplot(points, samples, ids, link_field, labels, sizes, classes, backend) and returns: _scatterplot