class_docstr: Utility renderer using Matplotlib to render a grid of plots over the same (x, y) range.
  
  Args:
      nrows (int, optional): Number of rows of plots, default ``1``.
      ncols (int, optional): Number of columns of plots, default ``1``.
      figsize (tuple(float, float), optional): Figure size in inches, default ``(9, 9)``.
      show_frame (bool, optional): Whether to show frame and axes ticks, default ``True``.
      backend (str, optional): Matplotlib backend to use or ``None`` for default backend.
          Default ``None``.
      gridspec_kw (dict, optional): Gridspec keyword arguments to pass to ``plt.subplots``,
          default None.
code: def _autoscale(self) -> None:
      # Using axes._need_autoscale attribute if need to autoscale before rendering after adding
      # lines/filled.  Only want to autoscale once per axes regardless of how many lines/filled
      # added.
      for ax in self._axes:
          if getattr(ax, "_need_autoscale", False):
              ax.autoscale_view(tight=True)
              ax._need_autoscale = False  # type: ignore[attr-defined]
      if self._want_tight and len(self._axes) > 1:
          self._fig.tight_layout()
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  import io
  from typing import TYPE_CHECKING, Any, cast
  import matplotlib.collections
  import matplotlib.pyplot
  import numpy
  from contourpy import FillType, LineType
  from contourpy.convert import convert_filled, convert_lines
  from contourpy.enum_util import as_fill_type, as_line_type
  from contourpy.util.mpl_util import filled_to_mpl_paths, lines_to_mpl_paths
  from contourpy.util.renderer import Renderer
label_desc: Use image node_id 3 for calling the MplRenderer obj's underlying member method code with example usage: obj._autoscale() without return types