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

Commitf498fdd

Browse files
authored
Merge pull request#20172 from meeseeksmachine/auto-backport-of-pr-20161-on-v3.4.x
Backport PR#20161 on branch v3.4.x (Fix resetting grid visibility)
2 parentseab5bed +93aabc1 commitf498fdd

File tree

2 files changed

+50
-26
lines changed

2 files changed

+50
-26
lines changed

‎lib/matplotlib/axis.py‎

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,18 @@ def get_children(self):
758758
return [self.label,self.offsetText,
759759
*self.get_major_ticks(),*self.get_minor_ticks()]
760760

761+
def_reset_major_tick_kw(self):
762+
self._major_tick_kw.clear()
763+
self._major_tick_kw['gridOn']= (
764+
mpl.rcParams['axes.grid']and
765+
mpl.rcParams['axes.grid.which']in ('both','major'))
766+
767+
def_reset_minor_tick_kw(self):
768+
self._minor_tick_kw.clear()
769+
self._minor_tick_kw['gridOn']= (
770+
mpl.rcParams['axes.grid']and
771+
mpl.rcParams['axes.grid.which']in ('both','minor'))
772+
761773
defclear(self):
762774
"""
763775
Clear the axis.
@@ -779,14 +791,8 @@ def clear(self):
779791
# Clear the callback registry for this axis, or it may "leak"
780792
self.callbacks=cbook.CallbackRegistry()
781793

782-
# whether the grids are on
783-
self._major_tick_kw['gridOn']= (
784-
mpl.rcParams['axes.grid']and
785-
mpl.rcParams['axes.grid.which']in ('both','major'))
786-
self._minor_tick_kw['gridOn']= (
787-
mpl.rcParams['axes.grid']and
788-
mpl.rcParams['axes.grid.which']in ('both','minor'))
789-
794+
self._reset_major_tick_kw()
795+
self._reset_minor_tick_kw()
790796
self.reset_ticks()
791797

792798
self.converter=None
@@ -833,10 +839,10 @@ def set_tick_params(self, which='major', reset=False, **kw):
833839
# future new ticks will automatically get them
834840
ifreset:
835841
ifwhichin ['major','both']:
836-
self._major_tick_kw.clear()
842+
self._reset_major_tick_kw()
837843
self._major_tick_kw.update(kwtrans)
838844
ifwhichin ['minor','both']:
839-
self._minor_tick_kw.clear()
845+
self._reset_minor_tick_kw()
840846
self._minor_tick_kw.update(kwtrans)
841847
self.reset_ticks()
842848
else:
@@ -1385,35 +1391,40 @@ def grid(self, b=None, which='major', **kwargs):
13851391
13861392
grid(color='r', linestyle='-', linewidth=2)
13871393
"""
1388-
ifbisnotNone:
1389-
if'visible'inkwargsandbool(b)!=bool(kwargs['visible']):
1394+
TOGGLE=object()
1395+
UNSET=object()
1396+
visible=kwargs.pop('visible',UNSET)
1397+
1398+
ifbisNone:
1399+
ifvisibleisUNSET:
1400+
ifkwargs:# grid(color='r')
1401+
b=True
1402+
else:# grid()
1403+
b=TOGGLE
1404+
else:# grid(visible=v)
1405+
b=visible
1406+
else:
1407+
ifvisibleisnotUNSETandbool(b)!=bool(visible):
1408+
# grid(True, visible=False), grid(False, visible=True)
13901409
raiseValueError(
13911410
"'b' and 'visible' specify inconsistent grid visibilities")
13921411
ifkwargsandnotb:# something false-like but not None
1412+
# grid(0, visible=True)
13931413
_api.warn_external('First parameter to grid() is false, '
13941414
'but line properties are supplied. The '
13951415
'grid will be enabled.')
13961416
b=True
1417+
13971418
which=which.lower()
13981419
_api.check_in_list(['major','minor','both'],which=which)
13991420
gridkw= {'grid_'+item[0]:item[1]foriteminkwargs.items()}
1400-
if'grid_visible'ingridkw:
1401-
forced_visibility=True
1402-
gridkw['gridOn']=gridkw.pop('grid_visible')
1403-
else:
1404-
forced_visibility=False
1405-
14061421
ifwhichin ['minor','both']:
1407-
ifbisNoneandnotforced_visibility:
1408-
gridkw['gridOn']=notself._minor_tick_kw['gridOn']
1409-
elifbisnotNone:
1410-
gridkw['gridOn']=b
1422+
gridkw['gridOn']= (notself._minor_tick_kw['gridOn']
1423+
ifbisTOGGLEelseb)
14111424
self.set_tick_params(which='minor',**gridkw)
14121425
ifwhichin ['major','both']:
1413-
ifbisNoneandnotforced_visibility:
1414-
gridkw['gridOn']=notself._major_tick_kw['gridOn']
1415-
elifbisnotNone:
1416-
gridkw['gridOn']=b
1426+
gridkw['gridOn']= (notself._major_tick_kw['gridOn']
1427+
ifbisTOGGLEelseb)
14171428
self.set_tick_params(which='major',**gridkw)
14181429
self.stale=True
14191430

‎lib/matplotlib/tests/test_axes.py‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4737,6 +4737,19 @@ def test_grid():
47374737
assertnotax.xaxis.majorTicks[0].gridline.get_visible()
47384738

47394739

4740+
deftest_reset_grid():
4741+
fig,ax=plt.subplots()
4742+
ax.tick_params(reset=True,which='major',labelsize=10)
4743+
assertnotax.xaxis.majorTicks[0].gridline.get_visible()
4744+
ax.grid(color='red')# enables grid
4745+
assertax.xaxis.majorTicks[0].gridline.get_visible()
4746+
4747+
withplt.rc_context({'axes.grid':True}):
4748+
ax.clear()
4749+
ax.tick_params(reset=True,which='major',labelsize=10)
4750+
assertax.xaxis.majorTicks[0].gridline.get_visible()
4751+
4752+
47404753
deftest_vline_limit():
47414754
fig=plt.figure()
47424755
ax=fig.gca()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp