Skip to content

Commit 29a3333

Browse files
committed
axisbelow should just set zorder.
1 parent f3101f6 commit 29a3333

File tree

1 file changed

+22
-29
lines changed

1 file changed

+22
-29
lines changed

lib/matplotlib/axes/_base.py

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,6 @@ def __init__(self, fig, rect,
487487
if self._position.width < 0 or self._position.height < 0:
488488
raise ValueError('Width and height specified must be non-negative')
489489
self._originalPosition = self._position.frozen()
490-
# self.set_axes(self)
491490
self.axes = self
492491
self.set_aspect('auto')
493492
self._adjustable = 'box'
@@ -498,15 +497,11 @@ def __init__(self, fig, rect,
498497
self._shared_x_axes.join(self, sharex)
499498
if sharex._adjustable == 'box':
500499
sharex._adjustable = 'datalim'
501-
# warnings.warn(
502-
# 'shared axes: "adjustable" is being changed to "datalim"')
503500
self._adjustable = 'datalim'
504501
if sharey is not None:
505502
self._shared_y_axes.join(self, sharey)
506503
if sharey._adjustable == 'box':
507504
sharey._adjustable = 'datalim'
508-
# warnings.warn(
509-
# 'shared axes: "adjustable" is being changed to "datalim"')
510505
self._adjustable = 'datalim'
511506
self.set_label(label)
512507
self.set_figure(fig)
@@ -2341,18 +2336,9 @@ def draw(self, renderer=None, inframe=False):
23412336
for spine in six.itervalues(self.spines):
23422337
artists.remove(spine)
23432338

2344-
if self.axison and not inframe:
2345-
if self._axisbelow is True:
2346-
self.xaxis.set_zorder(0.5)
2347-
self.yaxis.set_zorder(0.5)
2348-
elif self._axisbelow is False:
2349-
self.xaxis.set_zorder(2.5)
2350-
self.yaxis.set_zorder(2.5)
2351-
else:
2352-
# 'line': above patches, below lines
2353-
self.xaxis.set_zorder(1.5)
2354-
self.yaxis.set_zorder(1.5)
2355-
else:
2339+
self.xaxis.set_zorder(self.get_zorder())
2340+
self.yaxis.set_zorder(self.get_zorder())
2341+
if not self.axison and inframe:
23562342
for _axis in self._get_axis_list():
23572343
artists.remove(_axis)
23582344

@@ -2425,34 +2411,39 @@ def get_renderer_cache(self):
24252411
# Axes rectangle characteristics
24262412

24272413
def get_frame_on(self):
2428-
"""
2429-
Get whether the axes rectangle patch is drawn
2430-
"""
2414+
"""Get whether the axes rectangle patch is drawn."""
24312415
return self._frameon
24322416

24332417
def set_frame_on(self, b):
2434-
"""
2435-
Set whether the axes rectangle patch is drawn
2418+
"""Set whether the axes rectangle patch is drawn.
24362419
24372420
ACCEPTS: [ *True* | *False* ]
24382421
"""
24392422
self._frameon = b
24402423
self.stale = True
24412424

24422425
def get_axisbelow(self):
2443-
"""
2444-
Get whether axis below is true or not
2445-
"""
2426+
"""Get whether axis below is true or not."""
24462427
return self._axisbelow
24472428

24482429
def set_axisbelow(self, b):
2449-
"""
2450-
Set whether the axis ticks and gridlines are above or below most
2451-
artists
2430+
"""Set the zorder for the axes ticks and gridlines.
2431+
2432+
``True`` corresponds to a zorder of 0.5, ``False`` to a zorder of 2.5,
2433+
and ``"line"`` to a zorder of 1.5.
24522434
24532435
ACCEPTS: [ *True* | *False* | 'line' ]
24542436
"""
2455-
self._axisbelow = validate_axisbelow(b)
2437+
self._axisbelow = axisbelow = validate_axisbelow(b)
2438+
if axisbelow is True:
2439+
zorder = 0.5
2440+
elif axisbelow is False:
2441+
zorder = 2.5
2442+
elif axisbelow == "line":
2443+
zorder = 1.5
2444+
else:
2445+
raise ValueError("Unexpected axisbelow value")
2446+
self.set_zorder(zorder)
24562447
self.stale = True
24572448

24582449
@docstring.dedent_interpd
@@ -2481,6 +2472,8 @@ def grid(self, b=None, which='major', axis='both', **kwargs):
24812472
24822473
%(Line2D)s
24832474
2475+
Note that the will be drawn according to the axes' zorder and not its
2476+
own.
24842477
"""
24852478
if len(kwargs):
24862479
b = True

0 commit comments

Comments
 (0)