class_docstr: Draws points at a list of 3D positions.
docstr: Update the data displayed by this item. All arguments are optional; 
  for example it is allowed to update spot positions while leaving 
  colors unchanged, etc.
  
  ====================  ==================================================
  **Arguments:**
  pos                   (N,3) array of floats specifying point locations.
  color                 (N,4) array of floats (0.0-1.0) specifying
                        spot colors OR a tuple of floats specifying
                        a single color for all spots.
  size                  (N,) array of floats specifying spot sizes or 
                        a single value to apply to all spots.
  pxMode                If True, spot sizes are expressed in pixels. 
                        Otherwise, they are expressed in item coordinates.
  ====================  ==================================================
code: def setData(self, **kwds):
      """
      Update the data displayed by this item. All arguments are optional;
      for example it is allowed to update spot positions while leaving
      colors unchanged, etc.
  
      ====================  ==================================================
      **Arguments:**
      pos                   (N,3) array of floats specifying point locations.
      color                 (N,4) array of floats (0.0-1.0) specifying
                            spot colors OR a tuple of floats specifying
                            a single color for all spots.
      size                  (N,) array of floats specifying spot sizes or
                            a single value to apply to all spots.
      pxMode                If True, spot sizes are expressed in pixels.
                            Otherwise, they are expressed in item coordinates.
      ====================  ==================================================
      """
      args = ["pos", "color", "size", "pxMode"]
      for k in kwds.keys():
          if k not in args:
              raise Exception(
                  "Invalid keyword argument: %s (allowed arguments are %s)"
                  % (k, str(args))
              )
  
      if "pos" in kwds:
          pos = kwds.pop("pos")
          self.pos = np.ascontiguousarray(pos, dtype=np.float32)
      if "color" in kwds:
          color = kwds.pop("color")
          if isinstance(color, np.ndarray):
              color = np.ascontiguousarray(color, dtype=np.float32)
          self.color = color
      if "size" in kwds:
          size = kwds.pop("size")
          if isinstance(size, np.ndarray):
              size = np.ascontiguousarray(size, dtype=np.float32)
          self.size = size
  
      self.pxMode = kwds.get("pxMode", self.pxMode)
      self.update()
  
file_path: pyqtgraph/pyqtgraph/opengl/items/GLScatterPlotItem.py
imports: from OpenGL.GL import *
  import numpy
  from ...None import functions
  from ...Qt import QtGui
  from ..None import shaders
  from ..GLGraphicsItem import GLGraphicsItem
label_desc: Use image node_id 2 for calling the GLScatterPlotItem obj's underlying member method code with example usage: obj.setData() without return types