+
    ŜiF                       ^ RI Ht ^ RIHtHtHt ^ RIt^ RIt^ RI	t
^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ RIt^ RIHu Ht ^ R
IHt ^ RIH t  ^ RI!H"t"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t)H*t*H+t+ ]'       d   ^ RI,H-t- ^ RI.H/t/ ^ RI0H1t1 ^ RI2H3t3 ^ RI4H5t5 R R lt6 ! R R]"4      t7R R lt8R#R R llt9R$R R llt:R$R R  llt;R%R! R" llt<R# )&    )annotations)TYPE_CHECKINGLiteral
NamedTupleN)lib)cache_readonly)find_stack_level)is_dict_like)	ABCSeries)remove_na_arraylike)Version)pprint_thing)LinePlotMPLPlot)create_iter_data_given_by)get_standard_colors)create_subplotsflatten_axesmaybe_adjust_figure)
Collection)Axes)Figure)Line2D)MatplotlibColorc               (    V ^8  d   QhRRRRRRRR/# )	   axr   labelsz	list[str]is_verticalboolreturnNone )formats   "l/Users/mibo/.openclaw/workspace/.venv-ak/lib/python3.14/site-packages/pandas/plotting/_matplotlib/boxplot.py__annotate__r&   0   s)     - - -i -d -QU -    c                   V'       d   V P                  4       MV P                  4       p\        V4      \        V4      8w  d^   \        \        V4      \        V4      4      w  rV\	        \
        P                  4      \	        R4      8  d   V^ 8X  g   Q V4       hW,          pV'       d   V P                  ! V3/ VB  R# V P                  ! V3/ VB  R# )zSet the tick labels of a given axis.

Due to https://github.com/matplotlib/matplotlib/pull/17266, we need to handle the
case of repeated ticks (due to `FixedLocator`) and thus we duplicate the number of
labels.
z3.10N)	
get_xticks
get_ytickslendivmodr   mpl__version__set_xticklabelsset_yticklabels)r   r   r   kwargsticksi	remainders   &&&,   r%   _set_ticklabelsr5   0   s      +BMMOE
5zS[ c%j#f+63??#gfo5>,9,>
6,V,
6,V,r'   c                  <  a  ] tR t^Ct]R R l4       tRtRt ! R R]4      t	RR R llt
]R R R	 ll4       tR
 t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tR!R R lltR R ltR R ltR R ltR R lt]R R l4       t]V 3R l4       tRtV ;t# )"BoxPlotc                   V ^8  d   QhRR/# )r   r!   zLiteral['box']r#   )r$   s   "r%   r&   BoxPlot.__annotate__E   s      ~ r'   c                	    R # )boxr#   selfs   &r%   _kindBoxPlot._kindD   s    r'   
horizontalc                  ,    ] tR t^Lt$ R]R&   R]R&   RtR# )
BoxPlot.BPr   r   zdict[str, list[Line2D]]linesr#   N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r#   r'   r%   BPrB   L   s    &&r'   rJ   c                    V ^8  d   QhRRRR/# )r   return_typestrr!   r"   r#   )r$   s   "r%   r&   r9   Q   s     $ $# $T $r'   c                	    W P                   9  d   \        R 4      hW n        \        P                  ! W3/ VB  V P
                  '       d$   V P                  R8X  d
   RV n        R# RV n        R# R# )z2return_type must be {None, 'axes', 'dict', 'both'}verticalFN)	_valid_return_types
ValueErrorrL   r   __init__subplotsorientationsharexsharey)r=   datarL   r1   s   &&&,r%   rR   BoxPlot.__init__Q   s_    666QRR&.v.=== :-## r'   c               $    V ^8  d   QhRRRRRR/# )r   r   r   yz
np.ndarrayrL   rM   r#   )r$   s   "r%   r&   r9   c   s$      $DGr'   c                	   VP                   ^8X  db   V Uu. uF  p\        V4      NK  	  ppV Uu. uF:  qfP                  ^ 8  d   TM$\        P                  ! \        P
                  .4      NK<  	  ppM\        V4      pVP                  ! V3/ VB pVR8X  d   W3# VR8X  d   V P                  WR7      V3# W3# u upi u upi )r   dictbothr   rC   )ndimr   sizenparraynanboxplotrJ   )	clsr   rZ   
column_numrL   kwdsvysbps	   &&&&&,   r%   _plotBoxPlot._plotb   s    
 66Q;234!Q%a(!B4 DFF2avvz!rxx'992BFB$Q'BZZ#d#& 6MF"66R6*B..6M 5 Gs   B9A B>c                	    V\         P                  J d   R # Ve!   \        P                  ! R\	        4       R7       \        V\        4      '       d%   . ROpV F  pWC9  g   K  \        RV RV 24      h	  V# )NzC'color' and 'colormap' cannot be used simultaneously. Using 'color')
stacklevel!color dict contains invalid key ''. The key must be either boxeswhiskersmedianscaps)r   
no_defaultwarningswarnr	   
isinstancer\   rQ   )r=   colorcolormap
valid_keyskeys   &&&  r%   _validate_color_argsBoxPlot._validate_color_argsx   s{    CNN"MMU+-
 eT""AJ($;C5 A22<?   r'   c                	2    \        ^V P                  RR7      # )   N)
num_colorsr{   rz   )r   r{   r<   s   &r%   _color_attrsBoxPlot._color_attrs   s     #a$--tTTr'   c                	(    V P                   ^ ,          # r   r   r<   s   &r%   _boxes_cBoxPlot._boxes_c         ##r'   c                	(    V P                   ^ ,          # r   r   r<   s   &r%   _whiskers_cBoxPlot._whiskers_c   r   r'   c                	(    V P                   ^,          # )r   r   r<   s   &r%   
_medians_cBoxPlot._medians_c   r   r'   c                	(    V P                   ^ ,          # r   r   r<   s   &r%   _caps_cBoxPlot._caps_c   r   r'   c                    V ^8  d   QhRRRR/# )r   
color_kwdszQdict[str, MatplotlibColor] | MatplotlibColor | Collection[MatplotlibColor] | Noner!   r"   r#   )r$   s   "r%   r&   r9      s        
r'   c                	    R # Nr#   )r=   r   r   s   &&&r%   _get_colorsBoxPlot._get_colors   s     	r'   c                   V ^8  d   QhRR/# r   r!   r"   r#   )r$   s   "r%   r&   r9      s     = =D =r'   c                	   \        V P                  \        4      '       d   V P                  P                  R V P                  4      pV P                  P                  RV P
                  4      pV P                  P                  RV P                  4      pV P                  P                  RV P                  4      pMV P                  ;'       g    V P                  pV P                  ;'       g    V P
                  pV P                  ;'       g    V P                  pV P                  ;'       g    V P                  pW#WE3p\        V3RV/V P                  B  R# )rr   rs   rt   ru   	color_tupN)
ry   rz   r\   getr   r   r   r   maybe_color_bprg   )r=   rj   rr   rs   rt   ru   r   s   &&     r%   r   BoxPlot.maybe_color_bp   s    djj$''JJNN7DMM:Ezz~~j$2B2BCHjjnnY@G::>>&$,,7D JJ//$--Ezz55T%5%5Hjj33DOOG::--Dg4	r<Y<$))<r'   c                    V ^8  d   QhRRRR/# )r   figr   r!   r"   r#   )r$   s   "r%   r&   r9      s     8 8f 8 8r'   c                	   V P                   '       Ed   . p. pV P                  e!   \        V P                  V P                  4      MV P                  p\        V P                  VR7      4       EF&  w  pw  rgV P                  V4      pV P                  P                  4       p	V P                  ei   VP                  pVP                  \        V4      4       V P                  P                  P                  p
V
^ ,           Uu. uF  p\        V4      NK  	  ppM\        V4      .pV P                  ! W3RVRV P                   /V	B w  rV P#                  V4       VP%                  V4       VP%                  V4       \'        WV P(                  R8H  R7       EK)  	  \*        P,                  ! W#\.        R7      V n        R # V P                  P2                  P                  pV P                  ^ 4      pV P                  P                  4       p	V P                  ! W3R^ RV P                   /V	B w  rV P#                  V4       Wn        V P                  P                   Uu. uF  p\        V4      NK  	  ppV P4                  '       g-   \7        \9        V4      4       Uu. uF  p\        V4      NK  	  pp\'        VVV P(                  R8H  R7       R # u upi u upi u upi )N)rW   rf   rL   rO   )r   r   r   )indexdtype)rS   byr   rW   r>   	enumerate
_iter_data_get_axrg   copyT	set_titler   columnslevelsrk   rL   r   appendr5   rT   pdSeriesobject_return_objvalues	use_indexranger+   )r=   r   obj_axes
obj_labelsrW   r3   labelrZ   r   rg   r   col
ticklabelsretrj   leftr   r}   s   &&                r%   
_make_plotBoxPlot._make_plot   sk   ===HJ
 77& *$))TZZ@YY  "+4???+E!F:E\\!_yy~~' 77&ALLe!45
 "YY..55F?Eay!Iy,s"3yJ!IJ".u"5!6J**&'595E5EIM ##B'$!!%($:J:Jj:X 1 "G6  "yy6RD		  ""AaB99>>#Djj"#151A1AEIGC #"59YY5F5FG5FTl4(5FFG>>>7<S[7IJ7I,s+7IJf$2B2Bj2P9 "J2 HJs    K	KKc                   V ^8  d   QhRR/# r   r#   )r$   s   "r%   r&   r9      s      d r'   c                	    R # r   r#   r<   s   &r%   _make_legendBoxPlot._make_legend   s    r'   c                    V ^8  d   QhRRRR/# )r   r   r   r!   r"   r#   )r$   s   "r%   r&   r9      s     5 54 5$ 5r'   c                	    V P                   '       d%   VP                  \        V P                   4      4       V P                  '       d'   VP	                  \        V P                  4      4       R # R # r   )xlabel
set_xlabelr   ylabel
set_ylabel)r=   r   rW   s   &&&r%   _post_plot_logicBoxPlot._post_plot_logic   sC    ;;;MM,t{{34;;;MM,t{{34 r'   c                   V ^8  d   QhRR/# )r   r!   z!Literal['horizontal', 'vertical']r#   )r$   s   "r%   r&   r9     s        >  r'   c                	N    V P                   P                  R R4      '       d   R# R# )vertTrO   r@   )rg   r   r<   s   &r%   rT   BoxPlot.orientation  s    99==&&r'   c                	L   < V P                   f   \        SV `  # V P                  # r   )rL   superresultr   )r=   	__class__s   &r%   r   BoxPlot.result
  s%    #7>!###r'   )r   rL   rU   rV   )Naxesr\   r]   )r   )Nr   )Nrz   )rD   rE   rF   rG   propertyr>   _layout_typerP   r   rJ   rR   classmethodrk   r~   r   r   r   r   r   r   r   r   r   r   r   rT   r   rI   __classcell__)r   s   @r%   r7   r7   C   s       L8'Z '
$"  *( U U $ $ $ $ $ $ $ $="8t5     $ $r'   r7   c                   V ^8  d   QhRR/# r   r#   )r$   s   "r%   r&   r&     s     
A 
AT 
Ar'   c                B   VP                  R 4      '       g1   \        P                  P                  V R,          V^ ,          ^R7       VP                  R4      '       g1   \        P                  P                  V R,          V^,          ^R7       VP                  R4      '       g1   \        P                  P                  V R,          V^,          ^R7       VP                  R4      '       g3   \        P                  P                  V R,          V^,          ^R7       R	# R	# )
boxpropsrr   )rz   alphawhiskerpropsrs   medianpropsrt   cappropsru   N)r   r-   artistsetp)rj   r   rg   s   &&,r%   r   r     s     88J

79Q<qA88N##

:il!D88M""

9Yq\C88J

6
)A,a@  r'   c               $    V ^8  d   QhRRRRRR/# )r   numeric_onlyr    gridfigsizetuple[float, float] | Noner#   )r$   s   "r%   r&   r&     s*     7 7
 7 7 (7r'   c
           	        VP                  VR R7      pVfI   \        V\        \        34      '       g   V.pVP	                  4       P
                  P                  V4      p\        V4      p\        VV
P                  RR4      V
P                  RR4      VVVR7      w  rV
P                  RR4      V
P                  RR4      ppV
P                  R	R4      '       d   T;'       g    TpMT;'       g    Tp. p\        \        V4      VR R
7       F_  w  ppVV,          p\        VRR/ w  ppV ! VVV3RVRV/V
B pVP                  V4       VP                  V4       VP                  V4       Ka  	  \         P"                  ! VVR R7      pV	f   Tp\        V4      ^8X  d
   V^ ,          MTpVP%                  RV 24       \'        VRRRRRR7       V# )F)observedNrU   TrV   )naxesrU   rV   r   r   layoutr   r   r   strictr   )r   r   zBoxplot grouped by 333333??皙?皙?bottomtopr   rightwspace)groupbyry   listtuple_get_numeric_datar   
differencer+   r   popr   zipr   r   r   r   r   r   suptitler   )plotfrW   r   r   r   r   r   r   r   rL   r1   groupedr   r   r   r   r   	ax_valuesr   gp_colkeysr   re_plotfr   bylines   &&&&&&&&&&,              r%   _grouped_plot_by_columnr    s    ll2l.G"tUm,,B((*22==bALEzz(D)zz(D)IC ZZ$/Hd1KFFzz&$22I|D)75ACF040fvrR&RR6R
S"
 B YYye<F "glRUFLL&vh/0Dc3sSMr'   c               (    V ^8  d   QhRRRRRRRR/# 	r   fontsize
int | Nonerotintr   r    r   r   r#   )r$   s   "r%   r&   r&   Y  s:      
  
  (r'   c
                L  aaa	a
a ^ RI Hp S	\        P                  9  d   \	        R4      h\        V \        4      '       d   V P                  R4      p RpV
3R lpR VVV	V3R llpV! 4       oVf   RpM"\        V\        \        34      '       d   TpMV.pVe   \        VV 3RVRVR	VR
VRVRVRS	/S
B pV# S	f   Ro	Ve   \	        R4      hVfB   Ve   RV/M/ p\        P                  ! V4      ;_uu_ 4        VP                  4       pRRR4       V P                  4       p \        V P                   4      pV^ 8X  d   \	        R4      hVf   V P                   pMW,          p V! WP"                  P$                  V3/ S
B pVP'                  V4       V#   + '       g   i     L; i)r   Nz,return_type must be {'axes', 'dict', 'both'}xc                   < \        ^R7      p \        P                  ! V . R	O4      p\        P                  ! VR4      pSP	                  RR4      pV'       d   \        V4      '       da   . R
Op\        \        V\        ^4      RR7      4      pVP                  4        F&  w  rVWS9   d   WaWE,          &   K  \        RV RV 24      h	  V# VP                  V4       V# )r   )r   krz   NTr   ro   rp   )r   r   r   rq   )r   ra   taker   r   r
   r\   r   r   itemsrQ   fill)result_listr   colorsr|   key_to_indexr}   valuerg   s          r%   r   boxplot.<locals>._get_colorsp  s     *Q7i063''4(F## F
#C
E!HT$JK"(,,.JC(49|01(?u E66@\C 	 #1  F#r'   c                   V ^8  d   QhRR/# )r   r   r   r#   )r$   s   "r%   r&   boxplot.<locals>.__annotate__  s      T r'   c                J  < VP                  R R4      VP                  RR4      rTV'       d   VP                  \        V4      4       V'       d   VP                  \        V4      4       V  Uu. uF  p\        V4      NK  	  p pV Uu. uF  p\	        V4      NK  	  ppVP
                  ! V3/ VB pS
e   VP                  RS
R7       \        W VP                  RR4      SR7       \        V3RS	/VB  SR	8X  d   V# SR8X  d   \        P                  W(R
7      # V# u upi u upi )r   Nr   r]   )axis	labelsizer   T)r   r   r   rotationr   r\   r^   )r   r   r   r   r   rd   tick_paramsr5   r   r   r7   rJ   )r  r   r   rg   r   r   r  rh   rj   r  r	  rL   r  s   &&&,     r%   
plot_groupboxplot.<locals>.plot_group  s   (D1488Hd3KMM,v./MM,v./)-.AQ.289&Q%a(&9ZZ'$'NN(N; 	DHHVT,BS	
 	r4V4t4 & IF":::..I% /9s   -DD r   r   r   r   r   r   rL   r   z7The 'layout' keyword is not supported when 'by' is Nonezfigure.figsizez;boxplot method requires numerical columns, nothing to plot.)matplotlib.pyplotpyplotr7   rP   rQ   ry   r   to_framer   r   r  r-   
rc_contextgcar   r+   r   r   r   r   )rW   columnr   r   r	  r  r   r   r   rL   rg   pltr   r   r   r   rcr   r  s   &&&&ff&&&fl       @r%   rd   rd   Y  s    $ '555GHH$	""}}S!: 8 ]F~	FT5M	*	*(	~ )
 
 	

 
 
 
 
 $
 
H M/  KVWW:070C"G,B##WWY $%%'DLL!A:M  ?llG=DG[[]]B?$?
M! $#s   9FF#	c               (    V ^8  d   QhRRRRRRRR/# r  r#   )r$   s   "r%   r&   r&     s4      
  
  (r'   c
                n    ^ RI Hp \        V 3RVRVRVRVRVRVRVR	VR
V	/	V
B pVP                  4        V# )r   Nr'  r   r   r	  r   r  r   r   rL   )r"  r#  rd   draw_if_interactive)r=   r'  r   r   r	  r  r   r   r   rL   rg   r(  s   &&&&&&&&&&, r%   boxplot_framer-    s     $	

 
 	

 
 
 
 
 
  
 
B Ir'   c               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r   rS   r    r	  r
  r  r  r   r   r   rU   rV   r#   )r$   s   "r%   r&   r&     sP     8 88 	8
 
8 8 (8 8 8r'   c                   VR J d   \        V 4      p\        VRVV	V
VVR7      w  r/ p\        V \        V4      RR7       FD  w  w  pppVP                  ! RRVRVRVRVRV/VB pVP                  \        V4      4       VVV&   KF  	  \        P                  ! V4      p\        VR	R
RR
RR7       V# \        V RR / w  pp\        P                  ! VV^R7      pVeM   \        P                  ! V4      p\        P                  P                  VV.4      p\        VP                   4      pVP                  ! RRVRVRVRVRVRVRV/VB pV# )TF)r   squeezer   rU   rV   r   r   r   r   r'  r	  r  r   r   r   r   r   r   r   )r  r  r   r   r#   )r+   r   r   r   rd   r   r   r   r   r   concatcomconvert_to_list_like
MultiIndexfrom_productr   r   )r   rS   r'  r	  r  r   r   r   r   rU   rV   rg   r   r   r   rW   r}   groupdr   r  framesdf	multi_keys   &&&&&&&&&&&,            r%   boxplot_frame_groupbyr;    s    4G#
	  #G\$-? NLS%" $/7=@GKOSA LLc*+DI !O iioC#CsSVW. J+ G1D1fYYvDq1 --f5F22D&>BI)**+Fjj 	
	
	
 	
 		

 	
 	
 	
 	
 Jr'   )NNTFNNNN)	NNNNr   TNNN)
TNNr   TNNNFT)=
__future__r   typingr   r   r   rw   
matplotlibr-   numpyra   pandas._libsr   pandas.util._decoratorsr   pandas.util._exceptionsr	   pandas.core.dtypes.commonr
   pandas.core.dtypes.genericr   pandas.core.dtypes.missingr   pandasr   pandas.core.commoncorecommonr2  pandas.util.versionr   pandas.io.formats.printingr    pandas.plotting._matplotlib.corer   r   #pandas.plotting._matplotlib.groupbyr   !pandas.plotting._matplotlib.styler   !pandas.plotting._matplotlib.toolsr   r   r   collections.abcr   matplotlib.axesr   matplotlib.figurer   matplotlib.linesr   pandas._typingr   r5   r7   r   r  rd   r-  r;  r#   r'   r%   <module>rU     s    " 
     2 4 2 0 :      ' 3 J A  *$('.-&L$h L$^
A7tD@8 8r'   