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
评论列表
文章目录