@@ -234,6 +234,7 @@ def __init__(self, *args, **kwargs):
234
234
self .resolution = kwargs .pop ('resolution' , 1 )
235
235
self ._default_theta_offset = kwargs .pop ('theta_offset' , 0 )
236
236
self ._default_theta_direction = kwargs .pop ('theta_direction' , 1 )
237
+ self ._default_rlabel_position = kwargs .pop ('rlabel_position' , 22.5 )
237
238
238
239
if self .resolution not in (None , 1 ):
239
240
warnings .warn (
@@ -324,7 +325,7 @@ def _set_lim_and_transforms(self):
324
325
self .transData )
325
326
# The r-axis labels are put at an angle and padded in the r-direction
326
327
self ._r_label_position = ScaledTranslation (
327
- 22.5 , 0.0 , Affine2D ())
328
+ self . _default_rlabel_position , 0.0 , Affine2D ())
328
329
self ._yaxis_text_transform = (
329
330
self ._r_label_position +
330
331
Affine2D ().scale (1.0 / 360.0 , 1.0 ) +
@@ -346,7 +347,7 @@ def get_yaxis_transform(self,which='grid'):
346
347
return self ._yaxis_transform
347
348
348
349
def get_yaxis_text1_transform (self , pad ):
349
- angle = self ._r_label_position . to_values ()[ 4 ]
350
+ angle = self .get_rlabel_position ()
350
351
if angle < 90. :
351
352
return self ._yaxis_text_transform , 'bottom' , 'left'
352
353
elif angle < 180. :
@@ -357,7 +358,7 @@ def get_yaxis_text1_transform(self, pad):
357
358
return self ._yaxis_text_transform , 'top' , 'left'
358
359
359
360
def get_yaxis_text2_transform (self , pad ):
360
- angle = self ._r_label_position . to_values ()[ 4 ]
361
+ angle = self .get_rlabel_position ()
361
362
if angle < 90. :
362
363
return self ._yaxis_text_transform , 'top' , 'right'
363
364
elif angle < 180. :
@@ -454,6 +455,26 @@ def set_rlim(self, *args, **kwargs):
454
455
kwargs ['ymax' ] = kwargs .pop ('rmax' )
455
456
return self .set_ylim (* args , ** kwargs )
456
457
458
+ def get_rlabel_position (self ):
459
+ """
460
+ Returns
461
+ -------
462
+ float
463
+ The theta position of the radius labels in degrees.
464
+ """
465
+ return self ._r_label_position .to_values ()[4 ]
466
+
467
+ def set_rlabel_position (self , value ):
468
+ """Updates the theta position of the radius labels.
469
+
470
+ Parameters
471
+ ----------
472
+ value : number
473
+ The angular position of the radius labels in degrees.
474
+ """
475
+ self ._r_label_position ._t = (value , 0.0 )
476
+ self ._r_label_position .invalidate ()
477
+
457
478
def set_yscale (self , * args , ** kwargs ):
458
479
Axes .set_yscale (self , * args , ** kwargs )
459
480
self .yaxis .set_major_locator (
@@ -543,9 +564,8 @@ def set_rgrids(self, radii, labels=None, angle=None, fmt=None,
543
564
elif fmt is not None :
544
565
self .yaxis .set_major_formatter (FormatStrFormatter (fmt ))
545
566
if angle is None :
546
- angle = self ._r_label_position .to_values ()[4 ]
547
- self ._r_label_position ._t = (angle , 0.0 )
548
- self ._r_label_position .invalidate ()
567
+ angle = self .get_rlabel_position ()
568
+ self .set_rlabel_position (angle )
549
569
for t in self .yaxis .get_ticklabels ():
550
570
t .update (kwargs )
551
571
return self .yaxis .get_gridlines (), self .yaxis .get_ticklabels ()
@@ -597,7 +617,7 @@ def can_pan(self) :
597
617
return True
598
618
599
619
def start_pan (self , x , y , button ):
600
- angle = np .deg2rad (self ._r_label_position . to_values ()[ 4 ] )
620
+ angle = np .deg2rad (self .get_rlabel_position () )
601
621
mode = ''
602
622
if button == 1 :
603
623
epsilon = np .pi / 45.0
@@ -611,7 +631,7 @@ def start_pan(self, x, y, button):
611
631
rmax = self .get_rmax (),
612
632
trans = self .transData .frozen (),
613
633
trans_inverse = self .transData .inverted ().frozen (),
614
- r_label_angle = self ._r_label_position . to_values ()[ 4 ] ,
634
+ r_label_angle = self .get_rlabel_position () ,
615
635
x = x ,
616
636
y = y ,
617
637
mode = mode
@@ -635,9 +655,7 @@ def drag_pan(self, button, key, x, y):
635
655
else :
636
656
dt = dt0 * - 1.0
637
657
dt = (dt / np .pi ) * 180.0
638
-
639
- self ._r_label_position ._t = (p .r_label_angle - dt , 0.0 )
640
- self ._r_label_position .invalidate ()
658
+ self .set_rlabel_position (p .r_label_angle - dt )
641
659
642
660
trans , vert1 , horiz1 = self .get_yaxis_text1_transform (0.0 )
643
661
trans , vert2 , horiz2 = self .get_yaxis_text2_transform (0.0 )
0 commit comments