@@ -502,10 +502,10 @@ def update_bbox_position_size(self, renderer):
502502
503503 x_box , y_box , w_box , h_box = _get_textbox (self , renderer )
504504 self ._bbox_patch .set_bounds (0. , 0. , w_box , h_box )
505- theta = np . deg2rad ( self .get_rotation ())
506- tr = Affine2D (). rotate ( theta )
507- tr = tr . translate ( posx + x_box , posy + y_box )
508- self . _bbox_patch . set_transform ( tr )
505+ self ._bbox_patch . set_transform (
506+ Affine2D ()
507+ . rotate_deg ( self . get_rotation () )
508+ . translate ( posx + x_box , posy + y_box ) )
509509 fontsize_in_pixel = renderer .points_to_pixels (self .get_size ())
510510 self ._bbox_patch .set_mutation_scale (fontsize_in_pixel )
511511
@@ -1481,11 +1481,12 @@ def _get_position_xy(self, renderer):
14811481 x , y = self .xy
14821482 return self ._get_xy (renderer , x , y , self .xycoords )
14831483
1484- def _check_xy (self , renderer , xy_pixel ):
1484+ def _check_xy (self , renderer ):
14851485 """Check whether the annotation at *xy_pixel* should be drawn."""
14861486 b = self .get_annotation_clip ()
14871487 if b or (b is None and self .xycoords == "data" ):
14881488 # check if self.xy is inside the axes.
1489+ xy_pixel = self ._get_position_xy (renderer )
14891490 return self .axes .contains_point (xy_pixel )
14901491 return True
14911492
@@ -1811,21 +1812,16 @@ def set_figure(self, fig):
18111812 Artist .set_figure (self , fig )
18121813
18131814 def update_positions (self , renderer ):
1814- """Update the pixel positions of the annotated point and the text."""
1815- xy_pixel = self ._get_position_xy (renderer )
1816- self ._update_position_xytext (renderer , xy_pixel )
1817-
1818- def _update_position_xytext (self , renderer , xy_pixel ):
18191815 """
18201816 Update the pixel positions of the annotation text and the arrow patch.
18211817 """
1818+ x1 , y1 = self ._get_position_xy (renderer ) # Annotated position.
18221819 # generate transformation,
18231820 self .set_transform (self ._get_xy_transform (renderer , self .anncoords ))
18241821
18251822 if self .arrowprops is None :
18261823 return
18271824
1828- x1 , y1 = xy_pixel # Annotated position.
18291825 bbox = Text .get_window_extent (self , renderer )
18301826
18311827 d = self .arrowprops .copy ()
@@ -1893,24 +1889,16 @@ def _update_position_xytext(self, renderer, xy_pixel):
18931889 @artist .allow_rasterization
18941890 def draw (self , renderer ):
18951891 # docstring inherited
1896-
18971892 if renderer is not None :
18981893 self ._renderer = renderer
1899- if not self .get_visible ():
1900- return
1901-
1902- xy_pixel = self ._get_position_xy (renderer )
1903- if not self ._check_xy (renderer , xy_pixel ):
1894+ if not self .get_visible () or not self ._check_xy (renderer ):
19041895 return
1905-
1906- self ._update_position_xytext (renderer , xy_pixel )
1896+ self .update_positions (renderer )
19071897 self .update_bbox_position_size (renderer )
1908-
19091898 if self .arrow_patch is not None : # FancyArrowPatch
19101899 if self .arrow_patch .figure is None and self .figure is not None :
19111900 self .arrow_patch .figure = self .figure
19121901 self .arrow_patch .draw (renderer )
1913-
19141902 # Draw text, including FancyBboxPatch, after FancyArrowPatch.
19151903 # Otherwise, a wedge arrowstyle can land partly on top of the Bbox.
19161904 Text .draw (self , renderer )
0 commit comments