77 nonzero , take , Float , log10 , logical_and
88
99from artist import Artist
10- from cbook import enumerate , silent_list
10+ from cbook import enumerate , silent_list , popall
1111from lines import Line2D , TICKLEFT , TICKRIGHT , TICKUP , TICKDOWN
1212from mlab import linspace
1313from matplotlib import rcParams
@@ -441,9 +441,17 @@ def __init__(self, axes):
441441 self .set_figure (axes .figure )
442442
443443 self .axes = axes
444+ self .major = Ticker ()
445+ self .minor = Ticker ()
446+ self .label = self ._get_label ()
447+ self .majorTicks = []
448+ self .minorTicks = []
449+
444450
445- self ._major = Ticker ()
446- self ._minor = Ticker ()
451+ self .cla ()
452+
453+ def cla (self ):
454+ 'clear the current axis'
447455 self .set_major_locator (AutoLocator ())
448456 self .set_major_formatter (ScalarFormatter ())
449457 self .set_minor_locator (NullLocator ())
@@ -452,15 +460,18 @@ def __init__(self, axes):
452460 # whether the grids are on
453461 self ._gridOnMajor = rcParams ['axes.grid' ]
454462 self ._gridOnMinor = False
455-
456- self .label = self . _get_label ( )
463+
464+ self .label . set_text ( '' )
457465 self ._set_artist_props (self .label )
458466
459467 # build a few default ticks; grow as necessary later; only
460468 # define 1 so properties set on ticks will be copied as they
461469 # grow
462- self .majorTicks = [self ._get_tick (major = True ) for i in range (1 )]
463- self .minorTicks = [self ._get_tick (major = False ) for i in range (1 )]
470+
471+ popall (self .majorTicks )
472+ popall (self .minorTicks )
473+ self .majorTicks .extend ([self ._get_tick (major = True ) for i in range (1 )])
474+ self .minorTicks .extend ([self ._get_tick (major = False ) for i in range (1 )])
464475
465476 def get_view_interval (self ):
466477 'return the Interval instance for this axis view limits'
@@ -482,9 +493,9 @@ def draw(self, renderer, *args, **kwargs):
482493 ticklabelBoxes2 = []
483494
484495 majorTicks = self .get_major_ticks ()
485- majorLocs = self ._major .locator ()
486- self ._major .formatter .set_locs (majorLocs )
487- majorLabels = [self ._major .formatter (val , i ) for i , val in enumerate (majorLocs )]
496+ majorLocs = self .major .locator ()
497+ self .major .formatter .set_locs (majorLocs )
498+ majorLabels = [self .major .formatter (val , i ) for i , val in enumerate (majorLocs )]
488499
489500
490501 seen = {}
@@ -506,9 +517,9 @@ def draw(self, renderer, *args, **kwargs):
506517 ticklabelBoxes2 .append (extent )
507518
508519 minorTicks = self .get_minor_ticks ()
509- minorLocs = self ._minor .locator ()
510- self ._minor .formatter .set_locs (minorLocs )
511- minorLabels = [self ._minor .formatter (val , i ) for i , val in enumerate (minorLocs )]
520+ minorLocs = self .minor .locator ()
521+ self .minor .formatter .set_locs (minorLocs )
522+ minorLabels = [self .minor .formatter (val , i ) for i , val in enumerate (minorLocs )]
512523
513524
514525 for tick , loc , label in zip (minorTicks , minorLocs , minorLabels ):
@@ -575,7 +586,7 @@ def get_ticklines(self):
575586
576587 def get_ticklocs (self ):
577588 "Get the tick locations in data coordinates as a Numeric array"
578- return self ._major .locator ()
589+ return self .major .locator ()
579590
580591 def _get_tick (self , major ):
581592 'return the default tick intsance'
@@ -598,24 +609,24 @@ def _copy_tick_props(self, src, dest):
598609
599610 def get_major_locator (self ):
600611 'Get the locator of the major ticker'
601- return self ._major .locator
612+ return self .major .locator
602613
603614 def get_minor_locator (self ):
604615 'Get the locator of the minor ticker'
605- return self ._minor .locator
616+ return self .minor .locator
606617
607618 def get_major_formatter (self ):
608619 'Get the formatter of the major ticker'
609- return self ._major .formatter
620+ return self .major .formatter
610621
611622 def get_minor_formatter (self ):
612623 'Get the formatter of the minor ticker'
613- return self ._minor .formatter
624+ return self .minor .formatter
614625
615626 def get_major_ticks (self ):
616627 'get the tick instances; grow as necessary'
617628
618- numticks = len (self ._major .locator ())
629+ numticks = len (self .major .locator ())
619630
620631 if len (self .majorTicks )< numticks :
621632 # update the new tick label properties from the old
@@ -633,7 +644,7 @@ def get_major_ticks(self):
633644
634645 def get_minor_ticks (self ):
635646 'get the minor tick instances; grow as necessary'
636- numticks = len (self ._minor .locator ())
647+ numticks = len (self .minor .locator ())
637648 if len (self .minorTicks )< numticks :
638649 protoTick = self .minorTicks [0 ]
639650 for i in range (numticks - len (self .minorTicks )):
@@ -671,38 +682,38 @@ def set_major_formatter(self, formatter):
671682Set the formatter of the major ticker
672683
673684ACCEPTS: A Formatter instance"""
674- self ._major .formatter = formatter
675- self ._major .formatter .set_view_interval ( self .get_view_interval () )
676- self ._major .formatter .set_data_interval ( self .get_data_interval () )
685+ self .major .formatter = formatter
686+ self .major .formatter .set_view_interval ( self .get_view_interval () )
687+ self .major .formatter .set_data_interval ( self .get_data_interval () )
677688
678689 def set_minor_formatter (self , formatter ):
679690 """
680691Set the formatter of the minor ticker
681692
682693ACCEPTS: A Formatter instance"""
683- self ._minor .formatter = formatter
684- self ._minor .formatter .set_view_interval ( self .get_view_interval () )
685- self ._minor .formatter .set_data_interval ( self .get_data_interval () )
694+ self .minor .formatter = formatter
695+ self .minor .formatter .set_view_interval ( self .get_view_interval () )
696+ self .minor .formatter .set_data_interval ( self .get_data_interval () )
686697
687698
688699 def set_major_locator (self , locator ):
689700 """
690701Set the locator of the major ticker
691702
692703ACCEPTS: a Locator instance"""
693- self ._major .locator = locator
694- self ._major .locator .set_view_interval ( self .get_view_interval () )
695- self ._major .locator .set_data_interval ( self .get_data_interval () )
704+ self .major .locator = locator
705+ self .major .locator .set_view_interval ( self .get_view_interval () )
706+ self .major .locator .set_data_interval ( self .get_data_interval () )
696707
697708
698709 def set_minor_locator (self , locator ):
699710 """
700711Set the locator of the minor ticker
701712
702713ACCEPTS: a Locator instance"""
703- self ._minor .locator = locator
704- self ._minor .locator .set_view_interval ( self .get_view_interval () )
705- self ._minor .locator .set_data_interval ( self .get_data_interval () )
714+ self .minor .locator = locator
715+ self .minor .locator .set_view_interval ( self .get_view_interval () )
716+ self .minor .locator .set_data_interval ( self .get_data_interval () )
706717
707718 def set_ticklabels (self , ticklabels , * args , ** kwargs ):
708719 """
@@ -740,11 +751,11 @@ def _update_label_postion(self, bboxes):
740751
741752 def pan (self , numsteps ):
742753 'Pan numticks (can be positive or negative)'
743- self ._major .locator .pan (numsteps )
754+ self .major .locator .pan (numsteps )
744755
745756 def zoom (self , direction ):
746757 "Zoom in/out on axis; if direction is >0 zoom in, else zoom out"
747- self ._major .locator .zoom (direction )
758+ self .major .locator .zoom (direction )
748759
749760class XAxis (Axis ):
750761 __name__ = 'xaxis'
0 commit comments