class_docstr: A `.SubplotDivider` for laying out axes vertically, while ensuring that
  they have equal widths.
class_docstr_tok: ["A","`",".SubplotDivider","`","for","laying","out","axes","vertically",",","while","ensuring","that","they","have","equal","widths","."]
code: def _locate(self, nx, ny, nx1, ny1, axes, renderer):
      # docstring inherited
      ny += self._yrefindex
      ny1 += self._yrefindex
      fig_w, fig_h = self._fig.bbox.size / self._fig.dpi
      x, y, w, h = self.get_position_runtime(axes, renderer)
      summed_hs = self.get_vertical_sizes(renderer)
      equal_ws = self.get_horizontal_sizes(renderer)
      y0, x0, oy, ww = _locate(
          y,
          x,
          h,
          w,
          summed_hs,
          equal_ws,
          fig_h,
          fig_w,
          self.get_anchor(),
      )
      if ny1 is None:
          ny1 = -1
      x1, w1 = x0, ww
      y1, h1 = y0 + oy[ny] / fig_h, (oy[ny1] - oy[ny]) / fig_h
      return mtransforms.Bbox.from_bounds(x1, y1, w1, h1)
  
imports: import functools
  import numpy
  import matplotlib
  from matplotlib import _api
  from matplotlib.gridspec import SubplotSpec
  import matplotlib.transforms
  from .None import axes_size
label_desc: Use image node_id 2 for calling the VBoxDivider obj's underlying member method code with example usage: obj._locate(nx, ny, nx1, ny1, axes, renderer) and returns: mtransforms