Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0b836ed

Browse files
committed
Move towards having get_shared_{x,y}_axes return immutable views.
Directly calling join() on the Groupers is not sufficient to share axes,anyways, so don't let users do that.
1 parent27cfec2 commit0b836ed

File tree

5 files changed

+42
-8
lines changed

5 files changed

+42
-8
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Modifications to the Groupers returned by ``get_shared_x_axes`` and ``get_shared_y_axes``
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
... are deprecated. In the future, these methods will return immutable views
4+
on the grouper structures. Note that previously, calling e.g. ``join()``
5+
would already fail to set up the correct structures for sharing axes; use
6+
`.Axes.sharex` or `.Axes.sharey` instead.

‎lib/matplotlib/axes/_base.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4603,9 +4603,9 @@ def twiny(self):
46034603
returnax2
46044604

46054605
defget_shared_x_axes(self):
4606-
"""Returna reference tothe shared axes Grouper object for x axes."""
4607-
returnself._shared_axes["x"]
4606+
"""Returnan immutable view onthe sharedx-axes Grouper."""
4607+
returncbook.GrouperView(self._shared_axes["x"])
46084608

46094609
defget_shared_y_axes(self):
4610-
"""Returna reference tothe shared axes Grouper object for y axes."""
4611-
returnself._shared_axes["y"]
4610+
"""Returnan immutable view onthe sharedy-axes Grouper."""
4611+
returncbook.GrouperView(self._shared_axes["y"])

‎lib/matplotlib/backend_bases.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3180,9 +3180,9 @@ def release_zoom(self, event):
31803180
fori,axinenumerate(self._zoom_info.axes):
31813181
# Detect whether this Axes is twinned with an earlier Axes in the
31823182
# list of zoomed Axes, to avoid double zooming.
3183-
twinx=any(ax.get_shared_x_axes().joined(ax,prev)
3183+
twinx=any(ax._shared_axes["x"].joined(ax,prev)
31843184
forprevinself._zoom_info.axes[:i])
3185-
twiny=any(ax.get_shared_y_axes().joined(ax,prev)
3185+
twiny=any(ax._shared_axes["y"].joined(ax,prev)
31863186
forprevinself._zoom_info.axes[:i])
31873187
ax._set_view_from_bbox(
31883188
(start_x,start_y,event.x,event.y),

‎lib/matplotlib/backend_tools.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -835,9 +835,9 @@ def _release(self, event):
835835
twinx,twiny=False,False
836836
iflast_a:
837837
forlainlast_a:
838-
ifa.get_shared_x_axes().joined(a,la):
838+
ifa._shared_axes["x"].joined(a,la):
839839
twinx=True
840-
ifa.get_shared_y_axes().joined(a,la):
840+
ifa._shared_axes["y"].joined(a,la):
841841
twiny=True
842842
last_a.append(a)
843843

‎lib/matplotlib/cbook/__init__.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -902,6 +902,34 @@ def get_siblings(self, a):
902902
return [x()forxinsiblings]
903903

904904

905+
classGrouperView:
906+
"""Immutable view over a `.Grouper`."""
907+
908+
def__init__(self,grouper):
909+
self._grouper=grouper
910+
911+
class_GrouperMethodForwarder:
912+
def__init__(self,deprecated_kw=None):
913+
self._deprecated_kw=deprecated_kw
914+
915+
def__set_name__(self,owner,name):
916+
wrapped=getattr(Grouper,name)
917+
forwarder=functools.wraps(wrapped)(
918+
lambdaself,*args,**kwargs:wrapped(
919+
self._grouper,*args,**kwargs))
920+
ifself._deprecated_kw:
921+
forwarder=_api.deprecated(**self._deprecated_kw)(forwarder)
922+
setattr(owner,name,forwarder)
923+
924+
__contains__=_GrouperMethodForwarder()
925+
__iter__=_GrouperMethodForwarder()
926+
joined=_GrouperMethodForwarder()
927+
get_siblings=_GrouperMethodForwarder()
928+
clean=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
929+
join=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
930+
remove=_GrouperMethodForwarder(deprecated_kw=dict(since="3.6"))
931+
932+
905933
defsimple_linear_interpolation(a,steps):
906934
"""
907935
Resample an array with ``steps - 1`` points between original point pairs.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp