docs: def inspect_axes(ax):
          """Inspect an axes or subplot to get the initialization parameters"""
          ret = {'fig': ax.get_figure().number}
          if mpl.__version__ < '2.0':
              ret['axisbg'] = ax.get_axis_bgcolor()
          else:  # axisbg is depreceated
              ret['facecolor'] = ax.get_facecolor()
          proj = getattr(ax, 'projection', None)
          if proj is not None and not isinstance(proj, six.string_types):
              proj = (proj.__class__.__module__, proj.__class__.__name__)
          ret['projection'] = proj
          ret['visible'] = ax.get_visible()
          ret['spines'] = {}
          ret['zorder'] = ax.get_zorder()
          ret['yaxis_inverted'] = ax.yaxis_inverted()
          ret['xaxis_inverted'] = ax.xaxis_inverted()
          for key, val in ax.spines.items():
              ret['spines'][key] = {}
              for prop in ['linestyle', 'edgecolor', 'linewidth',
                           'facecolor', 'visible']:
                  ret['spines'][key][prop] = getattr(val, 'get_' + prop)()
          if isinstance(ax, mfig.SubplotBase):
              sp = ax.get_subplotspec().get_topmost_subplotspec()
              ret['grid_spec'] = sp.get_geometry()[:2]
              ret['subplotspec'] = [sp.num1, sp.num2]
              ret['is_subplot'] = True
          else:
              ret['args'] = [ax.get_position(True).bounds]
              ret['is_subplot'] = False
          return ret