@@ -169,6 +169,21 @@ def apply_tickdir(self, tickdir):
169169 """
170170 pass
171171
172+ def get_tickdir (self ):
173+ return self ._tickdir
174+
175+ def get_tick_padding (self ):
176+ """
177+ Get the length of the tick outside of the axes.
178+ """
179+ tickdir = self ._tickdir
180+ if tickdir == 'in' :
181+ return 0.0
182+ elif tickdir == 'inout' :
183+ return self ._size / 2
184+ elif tickdir == 'out' :
185+ return self ._size
186+
172187 def get_children (self ):
173188 children = [self .tick1line , self .tick2line ,
174189 self .gridline , self .label1 , self .label2 ]
@@ -349,13 +364,11 @@ def apply_tickdir(self, tickdir):
349364
350365 if self ._tickdir == 'in' :
351366 self ._tickmarkers = (mlines .TICKUP , mlines .TICKDOWN )
352- self ._pad = self ._base_pad
353367 elif self ._tickdir == 'inout' :
354368 self ._tickmarkers = ('|' , '|' )
355- self ._pad = self ._base_pad + self ._size / 2.
356369 else :
357370 self ._tickmarkers = (mlines .TICKDOWN , mlines .TICKUP )
358- self ._pad = self ._base_pad + self ._size
371+ self ._pad = self ._base_pad + self .get_tick_padding ()
359372 self .stale = True
360373
361374 def _get_text1 (self ):
@@ -485,13 +498,11 @@ def apply_tickdir(self, tickdir):
485498
486499 if self ._tickdir == 'in' :
487500 self ._tickmarkers = (mlines .TICKRIGHT , mlines .TICKLEFT )
488- self ._pad = self ._base_pad
489501 elif self ._tickdir == 'inout' :
490502 self ._tickmarkers = ('_' , '_' )
491- self ._pad = self ._base_pad + self ._size / 2.
492503 else :
493504 self ._tickmarkers = (mlines .TICKLEFT , mlines .TICKRIGHT )
494- self ._pad = self ._base_pad + self ._size
505+ self ._pad = self ._base_pad + self .get_tick_padding ()
495506 self .stale = True
496507
497508 # how far from the y axis line the right of the ticklabel are
@@ -1067,7 +1078,7 @@ def _get_tick_bboxes(self, ticks, renderer):
10671078 def get_tightbbox (self , renderer ):
10681079 """
10691080 Return a bounding box that encloses the axis. It only accounts
1070- tick labels, axis label, and offsetText .
1081+ tick labels, axis label, offsetText and ticks themselves .
10711082 """
10721083 if not self .get_visible ():
10731084 return
@@ -1097,6 +1108,9 @@ def get_tightbbox(self, renderer):
10971108 else :
10981109 return None
10991110
1111+ def get_tick_padding (self ):
1112+ return self .majorTicks [0 ].get_tick_padding ()
1113+
11001114 @allow_rasterization
11011115 def draw (self , renderer , * args , ** kwargs ):
11021116 'Draw the axis lines, grid lines, tick lines and labels'
0 commit comments