code: def bounds(self):
      pan_x, pan_y = self._pz.pan
      zoom_x, zoom_y = self._pz.zoom
      xmin = -1 / zoom_x - pan_x
      xmax = +1 / zoom_x - pan_x
      ymin = -1 / zoom_y - pan_y
      ymax = +1 / zoom_y - pan_y
      return (xmin, ymin, xmax, ymax)
  
imports: import numpy
  import math
  from vispy import gloo, app, scene
  from vispy.visuals import Visual
  from vispy.visuals.shaders import Function, Variable
  from vispy.visuals.transforms import TransformSystem, BaseTransform
  from vispy.util.profiler import Profiler
label_desc: Use image node_id 4 for calling the PanZoomCanvas obj's underlying member method code with example usage: obj.bounds() and returns: xmin,  ymin,  xmax,  ymax