@@ -300,8 +300,9 @@ def _update_padding(self, pad, angle):
300
300
def update_position (self , loc ):
301
301
super (ThetaTick , self ).update_position (loc )
302
302
axes = self .axes
303
- angle = (loc * axes .get_theta_direction () +
304
- axes .get_theta_offset () - np .pi / 2 )
303
+ angle = loc * axes .get_theta_direction () + axes .get_theta_offset ()
304
+ text_angle = np .rad2deg (angle ) % 360 - 90
305
+ angle -= np .pi / 2
305
306
306
307
if self .tick1On :
307
308
marker = self .tick1line .get_marker ()
@@ -326,17 +327,17 @@ def update_position(self, loc):
326
327
327
328
mode , user_angle = self ._labelrotation
328
329
if mode == 'default' :
329
- angle = 0
330
+ text_angle = user_angle
330
331
else :
331
- if angle > np . pi / 2 :
332
- angle -= np . pi
333
- elif angle < - np . pi / 2 :
334
- angle += np . pi
335
- angle = np . rad2deg ( angle ) + user_angle
332
+ if text_angle > 90 :
333
+ text_angle -= 180
334
+ elif text_angle < - 90 :
335
+ text_angle += 180
336
+ text_angle += user_angle
336
337
if self .label1On :
337
- self .label1 .set_rotation (angle )
338
+ self .label1 .set_rotation (text_angle )
338
339
if self .label2On :
339
- self .label2 .set_rotation (angle )
340
+ self .label2 .set_rotation (text_angle )
340
341
341
342
# This extra padding helps preserve the look from previous releases but
342
343
# is also needed because labels are anchored to their center.
@@ -527,7 +528,8 @@ def update_position(self, loc):
527
528
full = _is_full_circle_deg (thetamin , thetamax )
528
529
529
530
if full :
530
- angle = axes .get_rlabel_position () * direction + offset - 90
531
+ angle = (axes .get_rlabel_position () * direction +
532
+ offset ) % 360 - 90
531
533
tick_angle = 0
532
534
if angle > 90 :
533
535
text_angle = angle - 180
@@ -536,7 +538,7 @@ def update_position(self, loc):
536
538
else :
537
539
text_angle = angle
538
540
else :
539
- angle = thetamin * direction + offset - 90
541
+ angle = ( thetamin * direction + offset ) % 360 - 90
540
542
if direction > 0 :
541
543
tick_angle = np .deg2rad (angle )
542
544
else :
@@ -584,7 +586,7 @@ def update_position(self, loc):
584
586
self .label2On = False
585
587
self .tick2On = False
586
588
else :
587
- angle = thetamax * direction + offset - 90
589
+ angle = ( thetamax * direction + offset ) % 360 - 90
588
590
if direction > 0 :
589
591
tick_angle = np .deg2rad (angle )
590
592
else :
0 commit comments