@@ -1120,51 +1120,25 @@ def __init__(self, targetfig, toolfig):
11201120
11211121        self .targetfig  =  targetfig 
11221122        toolfig .subplots_adjust (left = 0.2 , right = 0.9 )
1123- 
1124-         self .axleft  =  toolfig .add_subplot (711 )
1125-         self .axleft .set_title ('Click on slider to adjust subplot param' )
1126-         self .axleft .set_navigate (False )
1127- 
1128-         self .sliderleft  =  Slider (self .axleft , 'left' ,
1129-                                  0 , 1 , targetfig .subplotpars .left ,
1130-                                  closedmax = False )
1131-         self .sliderleft .on_changed (self .funcleft )
1132- 
1133-         self .axbottom  =  toolfig .add_subplot (712 )
1134-         self .axbottom .set_navigate (False )
1135-         self .sliderbottom  =  Slider (self .axbottom ,
1136-                                    'bottom' , 0 , 1 ,
1137-                                    targetfig .subplotpars .bottom ,
1138-                                    closedmax = False )
1139-         self .sliderbottom .on_changed (self .funcbottom )
1140- 
1141-         self .axright  =  toolfig .add_subplot (713 )
1142-         self .axright .set_navigate (False )
1143-         self .sliderright  =  Slider (self .axright , 'right' , 0 , 1 ,
1144-                                   targetfig .subplotpars .right ,
1145-                                   closedmin = False )
1146-         self .sliderright .on_changed (self .funcright )
1147- 
1148-         self .axtop  =  toolfig .add_subplot (714 )
1149-         self .axtop .set_navigate (False )
1150-         self .slidertop  =  Slider (self .axtop , 'top' , 0 , 1 ,
1151-                                 targetfig .subplotpars .top ,
1152-                                 closedmin = False )
1153-         self .slidertop .on_changed (self .functop )
1154- 
1155-         self .axwspace  =  toolfig .add_subplot (715 )
1156-         self .axwspace .set_navigate (False )
1157-         self .sliderwspace  =  Slider (self .axwspace , 'wspace' ,
1158-                                    0 , 1 , targetfig .subplotpars .wspace ,
1159-                                    closedmax = False )
1160-         self .sliderwspace .on_changed (self .funcwspace )
1161- 
1162-         self .axhspace  =  toolfig .add_subplot (716 )
1163-         self .axhspace .set_navigate (False )
1164-         self .sliderhspace  =  Slider (self .axhspace , 'hspace' ,
1165-                                    0 , 1 , targetfig .subplotpars .hspace ,
1166-                                    closedmax = False )
1167-         self .sliderhspace .on_changed (self .funchspace )
1123+         toolfig .suptitle ("Click on slider to adjust subplot param" )
1124+ 
1125+         self ._sliders  =  []
1126+         names  =  ["left" , "bottom" , "right" , "top" , "wspace" , "hspace" ]
1127+         # The last subplot, removed below, keeps space for the "Reset" button. 
1128+         for  name , ax  in  zip (names , toolfig .subplots (len (names ) +  1 )):
1129+             ax .set_navigate (False )
1130+             slider  =  Slider (ax , name ,
1131+                             0 , 1 , getattr (targetfig .subplotpars , name ))
1132+             slider .on_changed (self ._on_slider_changed )
1133+             self ._sliders .append (slider )
1134+         toolfig .axes [- 1 ].remove ()
1135+         (self .sliderleft , self .sliderbottom , self .sliderright , self .slidertop ,
1136+          self .sliderwspace , self .sliderhspace ) =  self ._sliders 
1137+         for  slider  in  [self .sliderleft , self .sliderbottom ,
1138+                        self .sliderwspace , self .sliderhspace ]:
1139+             slider .closedmax  =  False 
1140+         for  slider  in  [self .sliderright , self .slidertop ]:
1141+             slider .closedmin  =  False 
11681142
11691143        # constraints 
11701144        self .sliderleft .slidermax  =  self .sliderright 
@@ -1175,57 +1149,78 @@ def __init__(self, targetfig, toolfig):
11751149        bax  =  toolfig .add_axes ([0.8 , 0.05 , 0.15 , 0.075 ])
11761150        self .buttonreset  =  Button (bax , 'Reset' )
11771151
1178-         sliders  =  (self .sliderleft , self .sliderbottom , self .sliderright ,
1179-                    self .slidertop , self .sliderwspace , self .sliderhspace ,)
1180- 
1181-         def  func (event ):
1182-             with  ExitStack () as  stack :
1183-                 # Temporarily disable drawing on self and self's sliders. 
1184-                 stack .enter_context (cbook ._setattr_cm (self , drawon = False ))
1185-                 for  slider  in  sliders :
1186-                     stack .enter_context (
1187-                         cbook ._setattr_cm (slider , drawon = False ))
1188-                 # Reset the slider to the initial position. 
1189-                 for  slider  in  sliders :
1190-                     slider .reset ()
1191-             # Draw the canvas. 
1192-             if  self .drawon :
1193-                 toolfig .canvas .draw ()
1194-                 self .targetfig .canvas .draw ()
1195- 
1196-         # during reset there can be a temporary invalid state 
1197-         # depending on the order of the reset so we turn off 
1198-         # validation for the resetting 
1152+         # During reset there can be a temporary invalid state depending on the 
1153+         # order of the reset so we turn off validation for the resetting 
11991154        validate  =  toolfig .subplotpars .validate 
12001155        toolfig .subplotpars .validate  =  False 
1201-         self .buttonreset .on_clicked (func )
1156+         self .buttonreset .on_clicked (self . _on_reset )
12021157        toolfig .subplotpars .validate  =  validate 
12031158
1159+     def  _on_slider_changed (self , _ ):
1160+         self .targetfig .subplots_adjust (
1161+             ** {slider .label .get_text (): slider .val 
1162+                for  slider  in  self ._sliders })
1163+         if  self .drawon :
1164+             self .targetfig .canvas .draw ()
1165+ 
1166+     def  _on_reset (self , event ):
1167+         with  ExitStack () as  stack :
1168+             # Temporarily disable drawing on self and self's sliders. 
1169+             stack .enter_context (cbook ._setattr_cm (self , drawon = False ))
1170+             for  slider  in  self ._sliders :
1171+                 stack .enter_context (cbook ._setattr_cm (slider , drawon = False ))
1172+             # Reset the slider to the initial position. 
1173+             for  slider  in  self ._sliders :
1174+                 slider .reset ()
1175+         # Draw the canvas. 
1176+         if  self .drawon :
1177+             event .canvas .draw ()
1178+             self .targetfig .canvas .draw ()
1179+ 
1180+     axleft  =  cbook .deprecated ("3.3" , name = "axleft" )(
1181+         property (lambda  self : self .sliderleft .ax ))
1182+     axright  =  cbook .deprecated ("3.3" , name = "axright" )(
1183+         property (lambda  self : self .sliderright .ax ))
1184+     axbottom  =  cbook .deprecated ("3.3" , name = "axbottom" )(
1185+         property (lambda  self : self .sliderbottom .ax ))
1186+     axtop  =  cbook .deprecated ("3.3" , name = "axtop" )(
1187+         property (lambda  self : self .slidertop .ax ))
1188+     axwspace  =  cbook .deprecated ("3.3" , name = "axwspace" )(
1189+         property (lambda  self : self .sliderwspace .ax ))
1190+     axhspace  =  cbook .deprecated ("3.3" , name = "axhspace" )(
1191+         property (lambda  self : self .sliderhspace .ax ))
1192+ 
1193+     @cbook .deprecated ("3.3" ) 
12041194    def  funcleft (self , val ):
12051195        self .targetfig .subplots_adjust (left = val )
12061196        if  self .drawon :
12071197            self .targetfig .canvas .draw ()
12081198
1199+     @cbook .deprecated ("3.3" ) 
12091200    def  funcright (self , val ):
12101201        self .targetfig .subplots_adjust (right = val )
12111202        if  self .drawon :
12121203            self .targetfig .canvas .draw ()
12131204
1205+     @cbook .deprecated ("3.3" ) 
12141206    def  funcbottom (self , val ):
12151207        self .targetfig .subplots_adjust (bottom = val )
12161208        if  self .drawon :
12171209            self .targetfig .canvas .draw ()
12181210
1211+     @cbook .deprecated ("3.3" ) 
12191212    def  functop (self , val ):
12201213        self .targetfig .subplots_adjust (top = val )
12211214        if  self .drawon :
12221215            self .targetfig .canvas .draw ()
12231216
1217+     @cbook .deprecated ("3.3" ) 
12241218    def  funcwspace (self , val ):
12251219        self .targetfig .subplots_adjust (wspace = val )
12261220        if  self .drawon :
12271221            self .targetfig .canvas .draw ()
12281222
1223+     @cbook .deprecated ("3.3" ) 
12291224    def  funchspace (self , val ):
12301225        self .targetfig .subplots_adjust (hspace = val )
12311226        if  self .drawon :
0 commit comments