
    IR-e[                     Z    d dl mZ d dlZd dlmZ d dlmZ ddl	m
Z
  G d de          ZdS )    N)rcParams)Text   )RectangularFramec                   N     e Zd Zd
 fd	Zd Zd Zd Zd Zd Zd Z	 fd	Z
 xZS )
AxisLabelsr   c                    d|vrt           d         |d<   d|vrt           d         |d<   d|vrt           d         |d<   || _         t                      j        |i | |                     d           |                     d           |                     d	           |                     d	           || _        d
| _	        d S )Nweightzaxes.labelweightsizezaxes.labelsizecolorzaxes.labelcolorTallcenterlabels)
r   _framesuper__init__set_clip_onset_visible_axesset_haset_va_minpad_visibility_rule)selfframeminpadargskwargs	__class__s        Hlib/python3.11/site-packages/astropy/visualization/wcsaxes/axislabels.pyr   zAxisLabels.__init__   s    6!!'(:;F8%&67F6N&  &'89F7O$)&)))e$$$HH (    c                 L    	 | j         |         S # t          $ r
 | j         cY S w xY wN)r   	TypeError)r   axiss     r   
get_minpadzAxisLabels.get_minpad   s=    	 <%% 	  	  	 <	 s    ##c                     || _         d S r"   )_visible_axes)r   visible_axess     r   r   zAxisLabels.set_visible_axes%   s    )r    c                 r      j         dk    r j                                        S  fd j         D             S )Nr   c                 &    g | ]}|j         v |S  )r   ).0xr   s     r   
<listcomp>z/AxisLabels.get_visible_axes.<locals>.<listcomp>,   s%    FFF!Q$+5E5EA5E5E5Er    )r'   r   keysr   s   `r   get_visible_axeszAxisLabels.get_visible_axes(   sB    &&;##%%%FFFFt1FFFFr    c                     || _         d S r"   )r   )r   r   s     r   
set_minpadzAxisLabels.set_minpad.   s    r    c                 n    g d}||vr%t          dd                    |                     || _        d S )N)alwaysr   ticksz)Axis label visibility rule must be one ofz / )
ValueErrorjoinr   )r   valuealloweds      r   set_visibility_rulezAxisLabels.set_visibility_rule1   sQ    ///QEJJw<O<OQQ   !&r    c                     | j         S r"   )r   r0   s    r   get_visibility_rulezAxisLabels.get_visibility_rule:   s    $$r    c                    |                                  sd S |                    |                                           }g }|                                D ]}	|	                                D ]}
||
z  }|                                 D ]v}|                                 dk    r
||         s$n|                                 dk    r|s@||                     |          z  }| j        |                                         \  }}}|dz
  dz  }d|cxk     rdk     rn n|dz  }| 	                    |           t          | j        t                    rt          |          dk    r,|d         $t          j                            |          g||<   nd g||<   ||v o||         d         d u}|d	k    r|r||         d         j        }||z
  }n|d
k    r|r||         d         j        }||z   }n|dk    r|r||         d         j        }||z
  }n|dk    r|r||         d         j        }||z   }nd|t)          j        t)          j        |                    ||dz  z   z  z   }|t)          j        t)          j        |                    ||dz  z   z  z   }|                     ||f           t3                                          |           t3                                          |          }|                    |           xd S )Nr6   r   g     V@g     v@         r   lrbtg      ?)get_visiblepoints_to_pixelsget_sizevaluesr1   r=   r%   r   _halfway_x_y_angleset_rotation
isinstancer   lenmtransformsBboxunionxminx1yminy1npcosradianssinset_positionr   drawget_window_extentappend)r   rendererbboxesticklabels_bboxcoord_ticklabels_bbox
ticks_locsvisible_ticks	text_sizeticklabels_bbox_listbbcoordbbaxisr$   paddingr-   ynormal_anglelabel_anglevisiblebbr   s                      r   rZ   zAxisLabels.draw=   s    !! 	F--dmmoo>>	!&--// 	/ 	/G!..** / /$.$$/ ))++ D	 D	D''))W44!$' ))++x77, $//$"7"77G
 "&T!2!E!E!G!GAq,'$.%7K[&&&&3&&&&&s"k*** $+'788 %W,--11,Q/; $(../CDD3)$// 48&)$/ M)X.CD.I!.LTX.X  3;; @1$7:?GAAS[[ >1$7:=GAAS[[ @1$7:?GAAS[[ >1$7:=GA rz,7788GiRUo<UVVrz,7788GiRUo<UVVq!f%%%GGLL"""**844BMM"ID	 D	r    )r   )__name__
__module____qualname__r   r%   r   r1   r3   r;   r=   rZ   __classcell__)r   s   @r   r   r      s        ) ) ) ) ) )$     * * *G G G  & & &% % %W W W W W W W W Wr    r   )matplotlib.transforms
transformsrN   numpyrU   
matplotlibr   matplotlib.textr   r   r   r   r+   r    r   <module>rv      s    , + + + + +                       # # # # # #H H H H H H H H H Hr    