@@ -245,32 +245,25 @@ def draw(self, renderer):
245245 if not self .get_visible ():
246246 return
247247
248- size = self ._ticksize
249- path_trans = self .get_transform ()
250-
251248 gc = renderer .new_gc ()
252249 gc .set_foreground (self .get_markeredgecolor ())
253250 gc .set_linewidth (self .get_markeredgewidth ())
254251 gc .set_alpha (self ._alpha )
255252
256- offset = renderer . points_to_pixels ( size )
257- marker_scale = Affine2D (). scale ( offset )
258-
253+ path_trans = self . get_transform ( )
254+ marker_transform = ( Affine2D ()
255+ . scale ( renderer . points_to_pixels ( self . _ticksize )))
259256 if self .get_tick_out ():
260- add_angle = 180
261- else :
262- add_angle = 0
263-
264- marker_rotation = Affine2D ()
265- marker_transform = marker_scale + marker_rotation
257+ marker_transform .rotate_deg (180 )
266258
267259 for loc , angle in self .locs_angles :
268- marker_rotation .clear ().rotate_deg (angle + add_angle )
269260 locs = path_trans .transform_non_affine (np .array ([loc ]))
270261 if self .axes and not self .axes .viewLim .contains (* locs [0 ]):
271262 continue
272- renderer .draw_markers (gc , self ._tickvert_path , marker_transform ,
273- Path (locs ), path_trans .get_affine ())
263+ renderer .draw_markers (
264+ gc , self ._tickvert_path ,
265+ marker_transform + Affine2D ().rotate_deg (angle ),
266+ Path (locs ), path_trans .get_affine ())
274267
275268 gc .restore ()
276269
@@ -325,21 +318,15 @@ def draw(self, renderer):
325318 # save original and adjust some properties
326319 tr = self .get_transform ()
327320 angle_orig = self .get_rotation ()
328-
329- offset_tr = Affine2D ()
330- self .set_transform (tr + offset_tr )
331-
332321 text_ref_angle = self ._get_text_ref_angle ()
333322 offset_ref_angle = self ._get_offset_ref_angle ()
334-
335323 theta = np .deg2rad (offset_ref_angle )
336324 dd = self ._get_offset_radius ()
337325 dx , dy = dd * np .cos (theta ), dd * np .sin (theta )
338- offset_tr .translate (dx , dy )
326+
327+ self .set_transform (tr + Affine2D ().translate (dx , dy ))
339328 self .set_rotation (text_ref_angle + angle_orig )
340329 super ().draw (renderer )
341- offset_tr .clear ()
342-
343330 # restore original properties
344331 self .set_transform (tr )
345332 self .set_rotation (angle_orig )
@@ -348,23 +335,15 @@ def get_window_extent(self, renderer):
348335 # save original and adjust some properties
349336 tr = self .get_transform ()
350337 angle_orig = self .get_rotation ()
351-
352- offset_tr = Affine2D ()
353- self .set_transform (tr + offset_tr )
354-
355338 text_ref_angle = self ._get_text_ref_angle ()
356339 offset_ref_angle = self ._get_offset_ref_angle ()
357-
358340 theta = np .deg2rad (offset_ref_angle )
359341 dd = self ._get_offset_radius ()
360342 dx , dy = dd * np .cos (theta ), dd * np .sin (theta )
361- offset_tr .translate (dx , dy )
362- self .set_rotation (text_ref_angle + angle_orig )
363343
344+ self .set_transform (tr + Affine2D ().translate (dx , dy ))
345+ self .set_rotation (text_ref_angle + angle_orig )
364346 bbox = super ().get_window_extent (renderer ).frozen ()
365-
366- offset_tr .clear ()
367-
368347 # restore original properties
369348 self .set_transform (tr )
370349 self .set_rotation (angle_orig )
0 commit comments