class_docstr: Displays an isosurface of a 3D scalar array.
  
  Parameters
  ----------
  data : ndarray | None
      3D scalar array.
  level: float | None
      The level at which the isosurface is constructed from *data*.
  vertex_colors : ndarray | None
      The vertex colors to use.
  face_colors : ndarray | None
      The face colors to use.
  color : ndarray | None
      The color to use.
  **kwargs : dict
      Keyword arguments to pass to the mesh construction.
code: def __init__(
      self,
      data=None,
      level=None,
      vertex_colors=None,
      face_colors=None,
      color=(0.5, 0.5, 1, 1),
      **kwargs,
  ):
      self._data = None
      self._level = level
      self._vertex_colors = vertex_colors
      self._face_colors = face_colors
      self._color = Color(color)
  
      # We distinguish between recomputing and just changing the visual
      # properties - in the latter case we don't recompute the faces.
      self._vertices_cache = None
      self._faces_cache = None
      self._recompute = True
      self._update_meshvisual = True
  
      MeshVisual.__init__(self, **kwargs)
      if data is not None:
          self.set_data(
              data,
              vertex_colors=vertex_colors,
              face_colors=face_colors,
              color=color,
          )
  
file_path: vispy/vispy/visuals/isosurface.py
imports: from __future__ import division
  from .mesh import MeshVisual
  from ..geometry.isosurface import isosurface
  from ..color import Color
label_desc: Use image node_id 1 to create a new IsosurfaceVisual object from inherited base classes: MeshVisual with example: obj = IsosurfaceVisual(data, level, vertex_colors, face_colors, color)