in the grouper class attribute Axes._shared_axes['x']. The grouper stores the shared axes in a list without a hierarchy.
in the _sharex attribute of Axes. This is asymmetic in that the only one of the Axes gets the _sharex attribute set, resulting in a parent-child relation.
I think a reasonable incremental improvement would be to remove the Axes._sharex/y state. It's only used in very few places and can more reasonably be handled via the grouper Axes._shared_axes['x'].
Still to be clarified: Do we need the parent-child relation in any way? - From a quick look I don't think so.
Activity