@@ -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