Skip to content

Commit 155ca3f

Browse files
committed
Simplify axes.draw by using zorder more; add frame line on top.
svn path=/trunk/matplotlib/; revision=2415
1 parent 5fa642e commit 155ca3f

1 file changed

Lines changed: 20 additions & 22 deletions

File tree

‎lib/matplotlib/axes.py‎

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,11 @@ def cla(self):
533533
self.axesPatch.set_figure(self.figure)
534534
self.axesPatch.set_transform(self.transAxes)
535535
self.axesPatch.set_linewidth(rcParams['axes.linewidth'])
536+
self.axesFrame = Line2D((0,1,1,0,0), (0,0,1,1,0),
537+
linewidth=rcParams['axes.linewidth'],
538+
color=rcParams['axes.edgecolor'])
539+
self.axesFrame.set_transform(self.transAxes)
540+
self.axesFrame.set_zorder(2.5)
536541
self.axison = True
537542

538543
def clear(self):
@@ -969,8 +974,7 @@ def draw(self, renderer=None, inframe=False):
969974
raise
970975

971976
self.transAxes.freeze() # eval the lazy objects
972-
if self.axison:
973-
if self._frameon: self.axesPatch.draw(renderer)
977+
if self.axison and self._frameon: self.axesPatch.draw(renderer)
974978

975979
if len(self.images)==1:
976980
im = self.images[0]
@@ -989,18 +993,27 @@ def draw(self, renderer=None, inframe=False):
989993
l, b, w, h = self.bbox.get_bounds()
990994
renderer.draw_image(l, b, im, self.bbox)
991995

992-
# draw axes here, so they are on top of most things
993-
if self._axisbelow:
994-
if self.axison and not inframe:
995-
self.xaxis.draw(renderer)
996-
self.yaxis.draw(renderer)
997996

998997
artists = []
999998
artists.extend(self.collections)
1000999
artists.extend(self.patches)
10011000
artists.extend(self.lines)
10021001
artists.extend(self.texts)
10031002
artists.extend(self.artists)
1003+
if self.axison and not inframe:
1004+
if self._axisbelow:
1005+
self.xaxis.set_zorder(0.5)
1006+
self.yaxis.set_zorder(0.5)
1007+
else:
1008+
self.xaxis.set_zorder(2.5)
1009+
self.yaxis.set_zorder(2.5)
1010+
artists.extend([self.xaxis, self.yaxis])
1011+
if not inframe: artists.append(self.title)
1012+
artists.extend(self.tables)
1013+
if self.legend_ is not None:
1014+
artists.append(self.legend_)
1015+
if self.axison and self._frameon:
1016+
artists.append(self.axesFrame)
10041017

10051018
# keep track of i to guarantee stable sort for python 2.2
10061019
dsu = [ (a.zorder, i, a) for i, a in enumerate(artists)
@@ -1010,21 +1023,6 @@ def draw(self, renderer=None, inframe=False):
10101023
for zorder, i, a in dsu:
10111024
a.draw(renderer)
10121025

1013-
self.title.draw(renderer)
1014-
if 0: bbox_artist(self.title, renderer)
1015-
1016-
if not self._axisbelow:
1017-
if self.axison and not inframe:
1018-
self.xaxis.draw(renderer)
1019-
self.yaxis.draw(renderer)
1020-
1021-
if self.legend_ is not None:
1022-
self.legend_.draw(renderer)
1023-
1024-
1025-
for table in self.tables:
1026-
table.draw(renderer)
1027-
10281026
self.transData.thaw() # release the lazy objects
10291027
self.transAxes.thaw() # release the lazy objects
10301028
renderer.close_group('axes')

0 commit comments

Comments
 (0)