@@ -245,32 +245,25 @@ def draw(self, renderer):
245
245
if not self .get_visible ():
246
246
return
247
247
248
- size = self ._ticksize
249
- path_trans = self .get_transform ()
250
-
251
248
gc = renderer .new_gc ()
252
249
gc .set_foreground (self .get_markeredgecolor ())
253
250
gc .set_linewidth (self .get_markeredgewidth ())
254
251
gc .set_alpha (self ._alpha )
255
252
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 )))
259
256
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 )
266
258
267
259
for loc , angle in self .locs_angles :
268
- marker_rotation .clear ().rotate_deg (angle + add_angle )
269
260
locs = path_trans .transform_non_affine (np .array ([loc ]))
270
261
if self .axes and not self .axes .viewLim .contains (* locs [0 ]):
271
262
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 ())
274
267
275
268
gc .restore ()
276
269
@@ -325,21 +318,15 @@ def draw(self, renderer):
325
318
# save original and adjust some properties
326
319
tr = self .get_transform ()
327
320
angle_orig = self .get_rotation ()
328
-
329
- offset_tr = Affine2D ()
330
- self .set_transform (tr + offset_tr )
331
-
332
321
text_ref_angle = self ._get_text_ref_angle ()
333
322
offset_ref_angle = self ._get_offset_ref_angle ()
334
-
335
323
theta = np .deg2rad (offset_ref_angle )
336
324
dd = self ._get_offset_radius ()
337
325
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 ))
339
328
self .set_rotation (text_ref_angle + angle_orig )
340
329
super ().draw (renderer )
341
- offset_tr .clear ()
342
-
343
330
# restore original properties
344
331
self .set_transform (tr )
345
332
self .set_rotation (angle_orig )
@@ -348,23 +335,15 @@ def get_window_extent(self, renderer):
348
335
# save original and adjust some properties
349
336
tr = self .get_transform ()
350
337
angle_orig = self .get_rotation ()
351
-
352
- offset_tr = Affine2D ()
353
- self .set_transform (tr + offset_tr )
354
-
355
338
text_ref_angle = self ._get_text_ref_angle ()
356
339
offset_ref_angle = self ._get_offset_ref_angle ()
357
-
358
340
theta = np .deg2rad (offset_ref_angle )
359
341
dd = self ._get_offset_radius ()
360
342
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 )
363
343
344
+ self .set_transform (tr + Affine2D ().translate (dx , dy ))
345
+ self .set_rotation (text_ref_angle + angle_orig )
364
346
bbox = super ().get_window_extent (renderer ).frozen ()
365
-
366
- offset_tr .clear ()
367
-
368
347
# restore original properties
369
348
self .set_transform (tr )
370
349
self .set_rotation (angle_orig )
0 commit comments