@@ -234,6 +234,7 @@ def __init__(self, *args, **kwargs):
234234 self .resolution = kwargs .pop ('resolution' , 1 )
235235 self ._default_theta_offset = kwargs .pop ('theta_offset' , 0 )
236236 self ._default_theta_direction = kwargs .pop ('theta_direction' , 1 )
237+ self ._default_rlabel_position = kwargs .pop ('rlabel_position' , 22.5 )
237238
238239 if self .resolution not in (None , 1 ):
239240 warnings .warn (
@@ -324,7 +325,7 @@ def _set_lim_and_transforms(self):
324325 self .transData )
325326 # The r-axis labels are put at an angle and padded in the r-direction
326327 self ._r_label_position = ScaledTranslation (
327- 22.5 , 0.0 , Affine2D ())
328+ self . _default_rlabel_position , 0.0 , Affine2D ())
328329 self ._yaxis_text_transform = (
329330 self ._r_label_position +
330331 Affine2D ().scale (1.0 / 360.0 , 1.0 ) +
@@ -346,7 +347,7 @@ def get_yaxis_transform(self,which='grid'):
346347 return self ._yaxis_transform
347348
348349 def get_yaxis_text1_transform (self , pad ):
349- angle = self ._r_label_position . to_values ()[ 4 ]
350+ angle = self .get_rlabel_position ()
350351 if angle < 90. :
351352 return self ._yaxis_text_transform , 'bottom' , 'left'
352353 elif angle < 180. :
@@ -357,7 +358,7 @@ def get_yaxis_text1_transform(self, pad):
357358 return self ._yaxis_text_transform , 'top' , 'left'
358359
359360 def get_yaxis_text2_transform (self , pad ):
360- angle = self ._r_label_position . to_values ()[ 4 ]
361+ angle = self .get_rlabel_position ()
361362 if angle < 90. :
362363 return self ._yaxis_text_transform , 'top' , 'right'
363364 elif angle < 180. :
@@ -454,6 +455,26 @@ def set_rlim(self, *args, **kwargs):
454455 kwargs ['ymax' ] = kwargs .pop ('rmax' )
455456 return self .set_ylim (* args , ** kwargs )
456457
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+
457478 def set_yscale (self , * args , ** kwargs ):
458479 Axes .set_yscale (self , * args , ** kwargs )
459480 self .yaxis .set_major_locator (
@@ -543,9 +564,8 @@ def set_rgrids(self, radii, labels=None, angle=None, fmt=None,
543564 elif fmt is not None :
544565 self .yaxis .set_major_formatter (FormatStrFormatter (fmt ))
545566 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 )
549569 for t in self .yaxis .get_ticklabels ():
550570 t .update (kwargs )
551571 return self .yaxis .get_gridlines (), self .yaxis .get_ticklabels ()
@@ -597,7 +617,7 @@ def can_pan(self) :
597617 return True
598618
599619 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 () )
601621 mode = ''
602622 if button == 1 :
603623 epsilon = np .pi / 45.0
@@ -611,7 +631,7 @@ def start_pan(self, x, y, button):
611631 rmax = self .get_rmax (),
612632 trans = self .transData .frozen (),
613633 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 () ,
615635 x = x ,
616636 y = y ,
617637 mode = mode
@@ -635,9 +655,7 @@ def drag_pan(self, button, key, x, y):
635655 else :
636656 dt = dt0 * - 1.0
637657 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 )
641659
642660 trans , vert1 , horiz1 = self .get_yaxis_text1_transform (0.0 )
643661 trans , vert2 , horiz2 = self .get_yaxis_text2_transform (0.0 )
0 commit comments