code: def scatter(
      x,
      y,
      z,
      color=default_color,
      size=default_size,
      size_selected=default_size_selected,
      color_selected=default_color_selected,
      marker="diamond",
      selection=None,
      grow_limits=True,
      **kwargs
  ):
      
      fig = gcf()
      if grow_limits:
          _grow_limits(x, y, z)
      s = ipv.Scatter(
          x=x,
          y=y,
          z=z,
          color=color,
          size=size,
          color_selected=color_selected,
          size_selected=size_selected,
          geo=marker,
          selection=selection,
          **kwargs
      )
      fig.scatters = fig.scatters + [s]
      return s
docs: Plot many markers/symbols in 3d.
  
      :param x: {x}
      :param y: {y}
      :param z: {z}
      :param color: {color}
      :param size: {size}
      :param size_selected: like size, but for selected glyphs
      :param color_selected:  like color, but for selected glyphs
      :param marker: {marker}
      :param selection: numpy array of shape (N,) or (S, N) with indices of x,y,z arrays of the selected markers, which
                        can have a different size and color
      :param kwargs:
      :return: :any:`Scatter`