1010import matplotlib
1111matplotlib .use ('GTK' )
1212
13- from matplotlib .backends .backend_gtk import FigureGTK , NavigationToolbar , \
14- error_msg , colorManager
13+ from matplotlib .backends .backend_gtk import NavigationToolbar , \
14+ error_msg , colorManager , FigureCanvasGTK
1515from matplotlib .axes import Subplot
1616
17+ from matplotlib .figure import Figure
1718from matplotlib .lines import Line2D , lineStyles , lineMarkers
1819from matplotlib .transforms import Bound2D
1920from matplotlib .patches import draw_bbox
@@ -201,10 +202,10 @@ def run(self):
201202 break
202203 self .destroy ()
203204
204- class ArtistPickerFigure ( FigureGTK ):
205+ class PickerCanvas ( FigureCanvasGTK ):
205206
206207 def button_press_event (self , widget , event ):
207- width , height = self .renderer .gdkDrawable .get_size ()
208+ width , height = self .figure . renderer .gdkDrawable .get_size ()
208209
209210 self .pick (event .x , height - event .y )
210211
@@ -225,10 +226,10 @@ def pick(self, x, y, epsilon=5):
225226 """
226227
227228 clickBBox = Bound2D (x - epsilon / 2 , y - epsilon / 2 , epsilon , epsilon )
228- draw_bbox (self .dpi , clickBBox , self .renderer )
229+ draw_bbox (self .figure . dpi , clickBBox , self . figure .renderer )
229230
230231 def over_text (t ):
231- bbox = t .get_window_extent (self .renderer )
232+ bbox = t .get_window_extent (self .figure . renderer )
232233 return clickBBox .overlap (bbox )
233234
234235 def over_line (line ):
@@ -239,9 +240,9 @@ def over_line(line):
239240 distances = sqrt ((x - xdata )** 2 + (y - ydata )** 2 )
240241 return min (distances )< epsilon
241242
242- for ax in fig .axes :
243+ for ax in self . figure .axes :
243244
244- for line in ax ._lines :
245+ for line in ax .get_lines () :
245246 if over_line (line ):
246247 self .select_line (line )
247248 return
@@ -265,17 +266,21 @@ def over_line(line):
265266win .add (vbox )
266267vbox .show ()
267268
268- fig = ArtistPickerFigure (figsize = (5 ,4 ), dpi = 100 )
269+ fig = Figure (figsize = (5 ,4 ), dpi = 100 )
270+
269271ax = Subplot (fig , 111 )
270272t = arange (0.0 ,3.0 ,0.01 )
271273s = sin (2 * pi * t )
272274
273275ax .plot (t ,s )
276+ ax .set_title ('click on line or text' )
274277fig .add_axis (ax )
275- fig .show ()
276- vbox .pack_start (fig )
277278
278- toolbar = NavigationToolbar (fig , win )
279+ canvas = PickerCanvas (fig )
280+ canvas .show ()
281+ vbox .pack_start (canvas )
282+
283+ toolbar = NavigationToolbar (canvas , win )
279284toolbar .show ()
280285vbox .pack_start (toolbar , gtk .FALSE , gtk .FALSE )
281286
0 commit comments