Skip to content

Commit 9b82dc2

Browse files
committed
Refactor share code.
1 parent 64851a2 commit 9b82dc2

File tree

1 file changed

+16
-28
lines changed

1 file changed

+16
-28
lines changed

lib/matplotlib/axes/_base.py

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4335,49 +4335,37 @@ def unshare_axes(self, axes=None):
43354335
self.unshare_x_axes(axes)
43364336
self.unshare_y_axes(axes)
43374337

4338-
def _share_axes(self, axes, shared_axes, symmetric=True, transitive=True):
4339-
if symmetric:
4340-
sharedA = getattr(self, "_shared_{}_axes".format(shared_axes))
4341-
sharedB = getattr(axes, "_shared_{}_axes".format(shared_axes))
4342-
4343-
# Adding to main share list
4344-
sharedA.add(axes)
4345-
sharedB.add(self)
4338+
@staticmethod
4339+
def _share_axes_symmetric(A, B, shared_axes):
4340+
"""Share A -> B, and B -> A"""
4341+
_AxesBase._share_axes_asymmetric(A, B, shared_axes)
4342+
_AxesBase._share_axes_asymmetric(B, A, shared_axes)
43464343

4347-
# Adding to all share list
4348-
sharedA = getattr(self, "_shared_{}_inv_axes".format(shared_axes))
4349-
sharedB = getattr(axes, "_shared_{}_inv_axes".format(shared_axes))
4344+
@staticmethod
4345+
def _share_axes_asymmetric(A, B, shared_axes):
4346+
"""Share A -> B"""
4347+
getattr(A, "_shared_{}_axes".format(shared_axes)).add(B)
4348+
getattr(B, "_shared_{}_inv_axes".format(shared_axes)).add(A)
43504349

4351-
sharedA.add(axes)
4352-
sharedB.add(self)
4350+
def _share_axes(self, axes, shared_axes, symmetric=True, transitive=True):
4351+
if symmetric:
4352+
self._share_axes_symmetric(self, axes, shared_axes)
43534353
else:
4354-
sharedA = getattr(self, "_shared_{}_axes".format(shared_axes))
4355-
sharedB = getattr(axes, "_shared_{}_inv_axes".format(shared_axes))
4356-
4357-
sharedA.add(axes)
4358-
sharedB.add(self)
4354+
self._share_axes_asymmetric(self, axes, shared_axes)
43594355

43604356
if transitive:
43614357
sharedA = getattr(self, "_shared_{}_axes".format(shared_axes))
43624358
sharedB = getattr(axes, "_shared_{}_axes".format(shared_axes))
43634359

43644360
sharedDiffBA = sharedB - sharedA
43654361
sharedDiffAB = sharedA - sharedB
4366-
# A share all that is in B.
4367-
sharedA |= sharedB
43684362

43694363
for ax in sharedDiffBA:
4370-
shared = getattr(ax, "_shared_{}_inv_axes".format(shared_axes))
4371-
shared.add(self)
4364+
self._share_axes_asymmetric(self, ax, shared_axes)
43724365

4373-
# B share all that is in A
43744366
if symmetric:
4375-
sharedB |= sharedA
4376-
43774367
for ax in sharedDiffAB:
4378-
shared = getattr(ax,
4379-
"_shared_{}_inv_axes".format(shared_axes))
4380-
shared.add(axes)
4368+
self._share_axes_asymmetric(axes, ax, shared_axes)
43814369

43824370
def share_x_axes(self, axes, symmetric=True, transitive=True):
43834371
"""

0 commit comments

Comments
 (0)