code: def barcollection(
      self,
      x,
      opens,
      closes,
      vols,
      width,
      edgeadjust=0,
      vscaling=1.0,
      vbot=0,
      **kwargs,
  ):
      # Prepare the data
      openclose = lambda: zip(opens, closes)  # NOQA: E731
  
      # Calculate bars colors
      colord = {True: self.colorup, False: self.colordown}
      colors = [colord[open < close] for open, close in openclose()]
      edgecolord = {True: self.edgeup, False: self.edgedown}
      edgecolors = [
          edgecolord[open < close] for open, close in openclose()
      ]
  
      # bar width to the sides
      delta = width / 2 - edgeadjust
  
      # small auxiliary func to return the bar coordinates
      def volbar(i, v):
          left, right = i - delta, i + delta
          v = vbot + v * vscaling
          return (left, vbot), (left, v), (right, v), (right, vbot)
  
      barareas = [volbar(i, v) for i, v in zip(x, vols)]
      barcol = mcol.PolyCollection(
          barareas,
          facecolors=colors,
          edgecolors=edgecolors,
          antialiaseds=(0,),
          linewidths=(0.5,),
          **kwargs,
      )
  
      return barcol
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from ..utils.py3 import range, zip
  import matplotlib.collections
  import matplotlib.colors
  import matplotlib.legend
  import matplotlib.lines
  from .utils import shade_color
label_desc: Use image node_id 3 for calling the VolumePlotHandler obj's underlying member method code with example usage: obj.barcollection(x, opens, closes, vols, width, edgeadjust, vscaling, vbot) and returns: barcol, left,  vbot,  left,  v,  right,  v,  right,  vbot