class_docstr: An Axes positioning class.
  
  The divider is initialized with lists of horizontal and vertical sizes
  (:mod:`mpl_toolkits.axes_grid1.axes_size`) based on which a given
  rectangular area will be divided.
  
  The `new_locator` method then creates a callable object
  that can be used as the *axes_locator* of the axes.
class_docstr_tok: ["An","Axes","positioning","class",".","The","divider","is","initialized","with","lists","of","horizontal","and","vertical","sizes","(",":","mod",":","`","mpl_toolkits.axes_grid1.axes_size","`",")","based","on","which","a","given","rectangular","area","will","be","divided",".","The","`","new_locator","`","method","then","creates","a","callable","object","that","can","be","used","as","the","*","axes_locator","*","of","the","axes","."]
docstr: Implementation of ``divider.new_locator().__call__``.
  
  The axes locator callable returned by ``new_locator()`` is created as
  a `functools.partial` of this method with *nx*, *ny*, *nx1*, and *ny1*
  specifying the requested cell.
docstr_tok: ["Implementation","of","``","divider.new_locator","(",")",".__call__","``",".","The","axes","locator","callable","returned","by","``","new_locator","(",")","``","is","created","as","a","`","functools.partial","`","of","this","method","with","*","nx","*",",","*","ny","*",",","*","nx1","*",",","and","*","ny1","*","specifying","the","requested","cell","."]
code: def _locate(self, nx, ny, nx1, ny1, axes, renderer):
      """
      Implementation of ``divider.new_locator().__call__``.
  
      The axes locator callable returned by ``new_locator()`` is created as
      a `functools.partial` of this method with *nx*, *ny*, *nx1*, and *ny1*
      specifying the requested cell.
      """
      nx += self._xrefindex
      nx1 += self._xrefindex
      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)
  
      hsizes = self.get_horizontal_sizes(renderer)
      vsizes = self.get_vertical_sizes(renderer)
      k_h = self._calc_k(hsizes, fig_w * w)
      k_v = self._calc_k(vsizes, fig_h * h)
  
      if self.get_aspect():
          k = min(k_h, k_v)
          ox = self._calc_offsets(hsizes, k)
          oy = self._calc_offsets(vsizes, k)
  
          ww = (ox[-1] - ox[0]) / fig_w
          hh = (oy[-1] - oy[0]) / fig_h
          pb = mtransforms.Bbox.from_bounds(x, y, w, h)
          pb1 = mtransforms.Bbox.from_bounds(x, y, ww, hh)
          x0, y0 = pb1.anchored(self.get_anchor(), pb).p0
  
      else:
          ox = self._calc_offsets(hsizes, k_h)
          oy = self._calc_offsets(vsizes, k_v)
          x0, y0 = x, y
  
      if nx1 is None:
          nx1 = -1
      if ny1 is None:
          ny1 = -1
  
      x1, w1 = x0 + ox[nx] / fig_w, (ox[nx1] - ox[nx]) / fig_w
      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 22 for calling the Divider obj's underlying member method code with example usage: obj._locate(nx, ny, nx1, ny1, axes, renderer) and returns: mtransforms