code: def dataBounds(self, ax, frac=1.0, orthoRange=None):
      # _penWidth is available after _updateColors()
      pw = self._penWidth[0] * 0.5
      # _dataBounds is available after _prepareData()
      bounds = self._dataBounds[ax]
      if bounds[0] is None or bounds[1] is None:
          return None, None
  
      return (bounds[0] - pw, bounds[1] + pw)
  
imports: import numpy
  from ..None import functions
  from ..None import getConfigOption
  from ..None import Qt
  from ..Qt import QtCore, QtGui
  from .GraphicsObject import GraphicsObject
label_desc: Use image node_id 14 for calling the BarGraphItem obj's underlying member method code with example usage: obj.dataBounds(ax, frac, orthoRange) and returns: unknown,  unknown, None,  None