Ë
    ômxiÑG  ã                  ó  — d dl mZ d dlmZmZmZ d dlZd dl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 d dlmZ d d	lmZ d d
lmZ d dlZd dlmc mZ d dlm Z  d dl!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+m,Z,m-Z- erd dl.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 dd„Z8 G d„ de$«      Z9dd„Z:	 	 	 	 	 	 	 	 d 	 	 	 	 	 d!d„Z;	 	 	 	 	 	 	 	 	 d"	 	 	 	 	 	 	 d#d„Z<	 	 	 	 	 	 	 	 	 d"	 	 	 	 	 	 	 d#d„Z=	 	 	 	 	 	 	 	 	 	 d$	 	 	 	 	 	 	 	 	 	 	 	 	 d%d„Z>y)&é    )Úannotations)ÚTYPE_CHECKINGÚLiteralÚ
NamedTupleN)Úsetp)Ú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  — |r| j                  «       n| j                  «       }t        |«      t        |«      k7  rWt        t        |«      t        |«      «      \  }}t	        t
        j                  «      t	        d«      k  r|dk(  sJ |«       ‚||z  }|r | j                  |fi |¤Ž y | j                  |fi |¤Ž y)zãSet 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.10r   N)	Ú
get_xticksÚ
get_yticksÚlenÚdivmodr   ÚmplÚ__version__Úset_xticklabelsÚset_yticklabels)ÚaxÚlabelsÚis_verticalÚkwargsÚticksÚiÚ	remainders          úZ/home/htdocs/ttos/venv/lib/python3.12/site-packages/pandas/plotting/_matplotlib/boxplot.pyÚ_set_ticklabelsr-   1   s�   € ñ  +ˆB�M‰MŒO°·±³€EÜ
ˆ5ƒz”S˜“[Ò Üœc %›j¬#¨f«+Ó6‰ˆˆ9Ü”3—?‘?Ó#¤g¨f£oÒ5Ø ’>Ð, 9Ó,�>Ø�!‰ˆÙØˆ×Ñ˜6Ñ, VÓ,àˆ×Ñ˜6Ñ, VÓ,ó    c                  ó  ‡ — e Zd Zedd„«       ZdZdZ G d„ de«      Zddd„Z	e
	 d	 	 	 	 	 dd„«       Zd„ Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Z	 	 d	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zedd„«       Zeˆ fd„«       Zˆ xZS ) ÚBoxPlotc                 ó   — y)NÚbox© ©Úselfs    r,   Ú_kindzBoxPlot._kindE   s   € àr.   Ú
horizontal)NÚaxesÚdictÚbothc                  ó"   — e Zd ZU ded<   ded<   y)ú
BoxPlot.BPr   r%   zdict[str, list[Line2D]]ÚlinesN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r3   r.   r,   ÚBPr<   M   s   … à‹Ø&Ô&r.   rB   c                óÈ   — || j                   vrt        d«      ‚|| _        t        j                  | |fi |¤Ž | j
                  r| j                  dk(  rd| _        y d| _        y y )Nz2return_type must be {None, 'axes', 'dict', 'both'}ÚverticalF)	Ú_valid_return_typesÚ
ValueErrorÚreturn_typer   Ú__init__ÚsubplotsÚorientationÚsharexÚsharey)r5   ÚdatarG   r(   s       r,   rH   zBoxPlot.__init__R   sc   € Ø˜d×6Ñ6Ñ6ÜÐQÓRÐRà&ˆÔä×Ñ˜˜tÑ. vÒ.à�=Š=ð ×Ñ :Ò-Ø#�•à#�•ð r.   c                ót  — |j                   dk(  r[|D �cg c]  }t        |«      ‘Œ }}|D �cg c]7  }|j                  dkD  r|n#t        j                  t        j
                  g«      ‘Œ9 }}nt        |«      } |j                  |fi |¤Ž}|dk(  r||fS |dk(  r| j                  ||¬«      |fS ||fS c c}w c c}w )Né   r   r9   r:   ©r%   r=   )Úndimr   ÚsizeÚnpÚarrayÚnanÚboxplotrB   )	Úclsr%   ÚyÚ
column_numrG   ÚkwdsÚvÚysÚbps	            r,   Ú_plotzBoxPlot._plotc   sÁ   € ð
 �6‰6�QŠ;Ø23Ö4¨QÔ% aÕ(Ð4ˆBÐ4ð DFÖF¸a�q—v‘v ’z‘!¤r§x¡x´·±°Ó'9Ñ9ÐFˆBÑFä$ QÓ'ˆBØˆR�Z‰Z˜Ñ#˜dÑ#ˆà˜&Ò Ø�r�6ˆMØ˜FÒ"Ø—6‘6˜R r�6Ó*¨BÐ.Ð.à�r�6ˆMùò 5ùò Gs
   ”B0¬<B5c                óÎ   — |t         j                  u ry |�t        j                  dt	        «       ¬«       t        |t        «      r g d¢}|D ]  }||vsŒt        d|› d|› �«      ‚ |S )NzC'color' and 'colormap' cannot be used simultaneously. Using 'color')Ú
stacklevel©ÚboxesÚwhiskersÚmediansÚcapsú!color dict contains invalid key 'ú'. The key must be either )r   Ú
no_defaultÚwarningsÚwarnr
   Ú
isinstancer9   rF   )r5   ÚcolorÚcolormapÚ
valid_keysÚkeys        r,   Ú_validate_color_argszBoxPlot._validate_color_argsy   s�   € Ø”C—N‘NÑ"ØàÐÜ�M‰Mð0ä+Ó-õô �eœTÔ"ÚAˆJØò �Ø˜jÒ(Ü$Ø;¸C¸5ð A2Ø2<°ð?óð ðð ˆr.   c                ó2   — t        d| j                  d ¬«      S )Né   )Ú
num_colorsrm   rl   )r   rm   r4   s    r,   Ú_color_attrszBoxPlot._color_attrsŽ   s   € ô #¨a¸$¿-¹-ÈtÔTÐTr.   c                ó    — | j                   d   S ©Nr   ©rt   r4   s    r,   Ú_boxes_czBoxPlot._boxes_c–   ó   € à× Ñ  Ñ#Ð#r.   c                ó    — | j                   d   S rv   rw   r4   s    r,   Ú_whiskers_czBoxPlot._whiskers_cš   ry   r.   c                ó    — | j                   d   S )NrO   rw   r4   s    r,   Ú
_medians_czBoxPlot._medians_cž   ry   r.   c                ó    — | j                   d   S rv   rw   r4   s    r,   Ú_caps_czBoxPlot._caps_c¢   ry   r.   c                 ó   — y ©Nr3   )r5   rs   Ú
color_kwdss      r,   Ú_get_colorszBoxPlot._get_colors¦   s   € ð 	r.   c                óv  — t        | j                  t        «      r™| j                  j                  d| j                  «      }| j                  j                  d| j
                  «      }| j                  j                  d| j                  «      }| j                  j                  d| j                  «      }nh| j                  xs | j                  }| j                  xs | j
                  }| j                  xs | j                  }| j                  xs | j                  }||||f}t        |fd|i| j                  ¤Ž y )Nrb   rc   rd   re   Ú	color_tup)
rk   rl   r9   Úgetrx   r{   r}   r   Úmaybe_color_bprZ   )r5   r]   rb   rc   rd   re   r…   s          r,   r‡   zBoxPlot.maybe_color_bp°   sâ   € Ü�d—j‘j¤$Ô'Ø—J‘J—N‘N 7¨D¯M©MÓ:ˆEØ—z‘z—~‘~ j°$×2BÑ2BÓCˆHØ—j‘j—n‘n Y°·±Ó@ˆGØ—:‘:—>‘> &¨$¯,©,Ó7‰Dð —J‘JÒ/ $§-¡-ˆEØ—z‘zÒ5 T×%5Ñ%5ˆHØ—j‘jÒ3 D§O¡OˆGØ—:‘:Ò- §¡ˆDà˜H g¨tÐ4ˆ	Ü�rÑ< YÐ<°$·)±)Ó<r.   c                óL  — | j                   �r„t        j                  t        ¬«      | _        | j
                  � t        | j                  | j                  «      n| j                  }t        | j                  |¬«      «      D �]  \  }\  }}| j                  |«      }| j                  j                  «       }| j
                  �b|j                  }|j                  t!        |«      «       | j                  j"                  j$                  }|d   D �	cg c]  }	t!        |	«      ‘Œ }
}	nt!        |«      g}
 | j&                  ||f|| j(                  dœ|¤Ž\  }}| j+                  |«       || j                  |<   t-        ||
| j.                  dk(  ¬«       �Œ y | j                  j0                  j                  }| j                  d«      }| j                  j                  «       } | j&                  ||fd| j(                  dœ|¤Ž\  }}| j+                  |«       || _        | j                  j"                  D �cg c]  }t!        |«      ‘Œ }}| j2                  s*t5        t7        |«      «      D �cg c]  }t!        |«      ‘Œ }}t-        ||| j.                  dk(  ¬«       y c c}	w c c}w c c}w )N©Údtype)rM   r   )rY   rG   rD   )r%   r&   r'   )rI   ÚpdÚSeriesÚobjectÚ_return_objÚbyr   rM   r6   Ú	enumerateÚ
_iter_dataÚ_get_axrZ   ÚcopyÚTÚ	set_titler   ÚcolumnsÚlevelsr^   rG   r‡   r-   rJ   ÚvaluesÚ	use_indexÚranger   )r5   ÚfigrM   r*   ÚlabelrX   r%   rZ   r—   ÚcolÚ
ticklabelsÚretr]   Úleftr&   ro   s                   r,   Ú
_make_plotzBoxPlot._make_plotÁ   sM  € Ø�=‹=Ü!Ÿy™y¬vÔ6ˆDÔð
 —7‘7Ð&ô *¨$¯)©)°T·Z±ZÔ@à—Y‘Yð ô "+¨4¯?©?À¨?Ó+EÓ!Fó ‘�‘:�E˜1Ø—\‘\ !“_�Ø—y‘y—~‘~Ó'�ð —7‘7Ð&ØŸ™�AØ—L‘L¤¨eÓ!4Ô5ð
 "ŸY™Y×.Ñ.×5Ñ5�FØ?EÀa¹yÖ!I¸¤,¨sÕ"3Ð!I�JÑ!Iä".¨uÓ"5Ð!6�Jà$˜$Ÿ*™*Ø˜ðØ&'°T×5EÑ5EñØIMñ‘��Rð ×#Ñ# BÔ'Ø*-�× Ñ  Ñ'ÜØ *¸$×:JÑ:JÈjÑ:X÷ñ/ð6 —	‘	× Ñ ×"Ñ"ˆAØ—‘˜a“ˆBØ—9‘9—>‘>Ó#ˆDà �d—j‘jØ�AðØ"#°×1AÑ1AñØEIñ‰GˆC�ð ×Ñ Ô#Ø"ˆDÔà59·Y±Y×5FÑ5FÖG¨T”l 4Õ(ÐGˆFÐGØ—>’>Ü7<¼SÀ»[Ó7IÖJ°œ, sÕ+ÐJ�ÐJÜØ˜f°$×2BÑ2BÀjÑ2Pöùò5 "Jùò. HùâJs   ÄJÈ1JÉ'J!c                 ó   — y r�   r3   r4   s    r,   Ú_make_legendzBoxPlot._make_legendû   s   € Ør.   c                óÆ   — | j                   r$|j                  t        | j                   «      «       | j                  r%|j	                  t        | j                  «      «       y y r�   )ÚxlabelÚ
set_xlabelr   ÚylabelÚ
set_ylabel)r5   r%   rM   s      r,   Ú_post_plot_logiczBoxPlot._post_plot_logicþ   s?   € à�;Š;Ø�M‰Mœ, t§{¡{Ó3Ô4Ø�;Š;Ø�M‰Mœ, t§{¡{Ó3Õ4ð r.   c                ó>   — | j                   j                  dd«      ryy)NÚvertTrD   r7   )rZ   r†   r4   s    r,   rJ   zBoxPlot.orientation  s   € à�9‰9�=‰=˜ Ô&Øàr.   c                óH   •— | j                   €
t        ‰| �  S | j                  S r�   )rG   ÚsuperÚresultrŽ   )r5   Ú	__class__s    €r,   r®   zBoxPlot.result  s%   ø€ à×ÑÐ#Ü‘7‘>Ð!à×#Ñ#Ð#r.   )ÚreturnzLiteral['box'])r8   )rG   Ústrr°   ÚNone)Nr8   )r%   r   rX   z
np.ndarrayrG   r±   )Nrl   )r‚   zQdict[str, MatplotlibColor] | MatplotlibColor | Collection[MatplotlibColor] | Noner°   r²   ©r°   r²   )r›   r   r°   r²   )r%   r   r°   r²   )r°   z!Literal['horizontal', 'vertical'])r>   r?   r@   Úpropertyr6   Ú_layout_typerE   r   rB   rH   Úclassmethodr^   rp   r	   rt   rx   r{   r}   r   rƒ   r‡   r¡   r£   r©   rJ   r®   Ú__classcell__)r¯   s   @r,   r0   r0   D   s-  ø„ Øòó ðð  €Là8Ðô'ˆZô 'ô
$ð" àJPðØðØ$ðØDGòó ðò*ð* ñUó ðUð ñ$ó ð$ð ñ$ó ð$ð ñ$ó ð$ð ñ$ó ð$ð
 ð ðððð 
óó=ó"8ótó5ð ò ó ð ð ó$ó ô$r.   r0   c                ó.  — |j                  d«      st        | d   |d   d¬«       |j                  d«      st        | d   |d   d¬«       |j                  d«      st        | d	   |d
   d¬«       |j                  d«      st        | d   |d   d¬«       y y )NÚboxpropsrb   r   é   )rl   ÚalphaÚwhiskerpropsrc   Úmedianpropsrd   rO   Úcappropsre   rr   )r†   r   )r]   r…   rZ   s      r,   r‡   r‡     s‰   € ð �8‰8�JÔÜˆR�‰[ 	¨!¡°AÕ6Ø�8‰8�NÔ#ÜˆR�
‰^ 9¨Q¡<°qÕ9Ø�8‰8�MÔ"ÜˆR�	‰] )¨A¡,°aÕ8Ø�8‰8�JÔÜˆR�‰Z˜y¨™|°1Ö5ð  r.   c
                óP  — |j                  |d¬«      }|€Bt        |t        t        f«      s|g}|j	                  «       j
                  j                  |«      }t        |«      }t        ||
j                  dd«      |
j                  dd«      |||¬«      \  }}t        |«      }|
j                  dd «      |
j                  dd «      }}|
j                  d	d«      r|xs |}n|xs |}g }t        |«      D ][  \  }}||   }||   }t        |Ž \  }} | |||f||d
œ|
¤Ž}|j                  |«       |j                  |«       |j!                  |«       Œ] t#        j$                  ||d¬«      }|	€|}t        |«      dk(  r|d   n|}|j'                  d|› �«       t)        |ddddd¬«       |S )NF)ÚobservedrK   TrL   )ÚnaxesrK   rL   Úfigsizer%   Úlayoutr¥   r§   r«   )r¥   r§   )Úindexr“   rº   r   zBoxplot grouped by ç333333Ã?çÍÌÌÌÌÌì?çš™™™™™¹?çš™™™™™É?©ÚbottomÚtopr    ÚrightÚwspace)Úgroupbyrk   ÚlistÚtupleÚ_get_numeric_datar–   Ú
differencer   r   Úpopr   r†   r�   Úzipr•   ÚappendÚgridr‹   rŒ   Úsuptitler   )ÚplotfrM   r–   r�   Únumeric_onlyrÖ   rÂ   r%   rÃ   rG   r(   ÚgroupedrÁ   r›   r8   Ú_axesr¥   r§   Ú	ax_valuesr*   r�   Úgp_colÚkeysr˜   Úre_plotfr®   Úbylines                              r,   Ú_grouped_plot_by_columnrá   !  s·  € ð �l‰l˜2¨ˆlÓ.€GØ€Ü˜"œt¤U˜mÔ,Ø�ˆBØ×(Ñ(Ó*×2Ñ2×=Ñ=¸bÓAˆÜ�‹L€EÜØØ�z‰z˜( DÓ)Ø�z‰z˜( DÓ)ØØØô�I€Cˆô ˜Ó€Eð —Z‘Z ¨$Ó/°·±¸HÀdÓ1KˆF€FØ‡z�z�&˜$ÔØ’˜2‰à’˜2ˆà€Iä˜GÓ$ò ‰ˆˆ3Ø�1‰XˆØ˜‘ˆÜ˜F�|‰ˆˆfÙ˜˜v rÐR°&ÀÑRÈ6ÑRˆØ
�‰�SÔØ×Ñ˜Ô"Ø
�‰��ðô �Y‰Y�y¨°eÔ<€Fð ÐØˆä˜"“g ’lˆR�ŠU¨€FØ‡L�LÐ& v hÐ/Ô0Ü˜ D¨c¸À3ÈsÕSà€Mr.   c
                óÎ  ‡‡‡	‡
‡— dd l m} ‰	t        j                  vrt	        d«      ‚t        | t        «      r| j                  d«      } d}ˆ
fd„}dˆˆˆ	ˆfd„} |«       Š|€d }nt        |t        t        f«      r|}n|g}|�t        || f||||||‰	dœ‰
¤Ž}|S ‰	€dŠ	|�t	        d«      ‚|€2|�d	|ini }|j                  |«      5  |j                  «       }d d d «       | j                  «       } t        | j                  «      }|dk(  rt	        d
«      ‚|€| j                  }n| |   }  ||| j                   j"                  |fi ‰
¤Ž}|j%                  |«       |S # 1 sw Y   Œ„xY w)Nr   z,return_type must be {'axes', 'dict', 'both'}Úxc                 óŽ  •— t        d¬«      } t        j                  | g d¢«      } t        j                  | d«      } ‰j	                  dd «      }|rut        |«      rYg d¢}t        t        |t        d«      «      «      }|j                  «       D ]"  \  }}||v r	|| ||   <   Œt        d|› d	|› �«      ‚ | S | j                  |«       | S )
Nrr   )rs   )r   r   rO   Úkrl   ra   é   rf   rg   )r   rS   ÚtakerÕ   rÓ   r   r9   rÔ   rš   ÚitemsrF   Úfill)r®   Úcolorsrn   Úkey_to_indexro   ÚvaluerZ   s         €r,   rƒ   zboxplot.<locals>._get_colorsu  sÖ   ø€ ô %°Ô2ˆÜ—‘˜¢Ó+ˆÜ—‘˜6 3Ó'ˆà—‘˜' 4Ó(ˆÙÜ˜FÔ#ò F�
Ü#¤C¨
´E¸!³HÓ$=Ó>�Ø"(§,¡,£.ò ‘J�C˜Ø˜jÑ(Ø49˜˜|¨CÑ0Ò1ä(Ø?À¸uð E6Ø6@°\ðCóð ð	ð ˆð —‘˜FÔ#àˆr.   c                óV  •— |j                  dd «      |j                  dd «      }}|r|j                  t        |«      «       |r|j                  t        |«      «       | D �cg c]  }t        |«      ‘Œ } }|D �cg c]&  }t	        j
                  t        |«      t        ¬«      ‘Œ( }} |j                  |fi |¤Ž}‰
�|j                  d‰
¬«       t        || |j                  dd«      ‰¬«       t        |fd	‰	i|¤Ž ‰d
k(  r|S ‰dk(  rt        j                  ||¬«      S |S c c}w c c}w )Nr¥   r§   r‰   r:   )ÚaxisÚ	labelsizer«   T)r%   r&   r'   Úrotationr…   r9   rP   )rÓ   r¦   r   r¨   rS   Úasarrayr   r�   rV   Útick_paramsr-   r†   r‡   r0   rB   )rÞ   r˜   r%   rZ   r¥   r§   rã   r[   r]   rê   ÚfontsizerG   Úrots            €€€€r,   Ú
plot_groupzboxplot.<locals>.plot_group’  s  ø€ àŸ™ (¨DÓ1°4·8±8¸HÀdÓ3K�ˆÙØ�M‰Mœ, vÓ.Ô/ÙØ�M‰Mœ, vÓ.Ô/à)-Ö. A”˜Q•Ð.ˆÐ.ØLRÖSÀq”"—*‘*Ô0°Ó3¼6ÖBÐSˆÐSØˆR�Z‰Z˜Ñ' $Ñ'ˆØÐØ�N‰N °(ˆNÔ;ô 	Ø˜$¨D¯H©H°V¸TÓ,BÈSõ	
ô 	�rÑ4 VÐ4¨tÒ4ð ˜&Ò ØˆIØ˜FÒ"Ü—:‘: ¨2�:Ó.Ð.àˆIùò% /ùÚSs   Á"D!Á:+D&)r–   r�   rÖ   rÂ   r%   rÃ   rG   r8   z7The 'layout' keyword is not supported when 'by' is Nonezfigure.figsizez;boxplot method requires numerical columns, nothing to plot.)r%   r   )Úmatplotlib.pyplotÚpyplotr0   rE   rF   rk   r   Úto_framerÏ   rÐ   rá   Ú
rc_contextÚgcarÑ   r   r–   r˜   r”   rÖ   )rM   Úcolumnr�   r%   ró   rô   rÖ   rÂ   rÃ   rG   rZ   Úpltrƒ   rõ   r–   r®   ÚrcrÁ   rê   s       ``   ``       @r,   rV   rV   ^  s›  ü€ õ $ð œ'×5Ñ5Ñ5ÜÐGÓHÐHä�$œ	Ô"Ø�}‰}˜SÓ!ˆØˆô÷:ð ñ8 ‹]€FØ€~Ø‰Ü	�FœT¤5˜MÔ	*Ø‰à�(ˆà	€~ô )ØØð
ð ØØØØØØ#ñ
ð ñ
ˆðH €Mð/ ÐØ ˆKØÐÜÐVÓWÐWàˆ:Ø07Ð0CÐ" GÑ,ÈˆBØ—‘ Ó#ñ Ø—W‘W“Y�÷à×%Ñ%Ó'ˆÜ�D—L‘LÓ!ˆØ�AŠ:ÜØMóð ð ˆ?Ø—l‘l‰Gà˜‘=ˆDá˜G T§[¡[§]¡]°BÑ?¸$Ñ?ˆØ
�‰�Œà€M÷!ð ús   ÃEÅE$c
                ó^   — dd l m} t        | f|||||||||	dœ	|
¤Ž}|j                  «        |S )Nr   )	rû   r�   r%   ró   rÖ   rô   rÂ   rÃ   rG   )rö   r÷   rV   Údraw_if_interactive)r5   rû   r�   r%   ró   rô   rÖ   rÂ   rÃ   rG   rZ   rü   s               r,   Úboxplot_framer   à  sQ   € õ $ä	Øð
àØØØØØØØØñ
ð ñ
€Bð ×ÑÔØ€Ir.   c                óø  — |du r°t        | «      }t        |d||	|
||¬«      \  }}t        |«      }t        j                  t
        ¬«      }t        | |«      D ]I  \  \  }}} |j                  d|||||dœ|¤Ž}|j                  t        |«      «       ||j                  |<   ŒK t        |ddddd	¬
«       |S t        | Ž \  }}| j                  dk(  rt        j                  ||d¬«      }n+t        |«      dkD  r|d   j                  |dd  «      }n|d   }|�Kt        j                   |«      }t        j"                  j%                  ||g«      }t'        |j(                  «      } |j                  d|||||||dœ|¤Ž}|S )NTF)rÁ   Úsqueezer%   rK   rL   rÂ   rÃ   r‰   )r%   rû   ró   rô   rÖ   rÅ   rÆ   rÇ   rÈ   rÉ   r   rº   )rÞ   rî   )rû   ró   rô   rÖ   r%   rÂ   rÃ   r3   )r   r   r   r‹   rŒ   r�   rÔ   rV   r•   r   Úlocr   rî   ÚconcatÚjoinÚcomÚconvert_to_list_likeÚ
MultiIndexÚfrom_productrÏ   r˜   )rÚ   rI   rû   ró   rô   rÖ   r%   rÂ   rÃ   rK   rL   rZ   rÁ   r›   r8   rŸ   ro   ÚgroupÚdrÞ   ÚframesÚdfÚ	multi_keys                          r,   Úboxplot_frame_groupbyr     s©  € ð �4ÑÜ�G“ˆÜ#ØØØØØØØô
‰	ˆˆTô ˜DÓ!ˆä�i‰iœfÔ%ˆä # G¨TÓ 2ò 	Ñ‰LˆS�%˜"Ø�—‘ð Ø˜f¨x¸SÀtñØOSñˆAð �L‰Lœ cÓ*Ô+ØˆC�G‰G�CŠLð	ô 	˜C¨°#¸CÀsÐSVÕWð8 €Jô5 ˜G�}‰ˆˆfØ�<‰<˜1ÒÜ—‘˜6¨°1Ô5‰BÜ�‹[˜1Š_Ø˜‘—‘  q s Ó,‰Bà˜‘ˆBð ÐÜ×-Ñ-¨fÓ5ˆFÜŸ™×2Ñ2°D¸&°>ÓBˆIÜ˜)×*Ñ*Ó+ˆFØˆb�j‰jð 	
ØØØØØØØñ	
ð ñ	
ˆð €Jr.   )r%   r   r&   z	list[str]r'   Úboolr°   r²   r³   )NNTFNNNN)rÙ   r  rÖ   r  rÂ   útuple[float, float] | None)	NNNNr   TNNN)ró   ú
int | Nonerô   ÚintrÖ   r  rÂ   r  )
TNNr   TNNNFT)rI   r  ró   r  rô   r  rÖ   r  rÂ   r  rK   r  rL   r  )?Ú
__future__r   Útypingr   r   r   ri   Ú
matplotlibr!   Úmatplotlib.artistr   ÚnumpyrS   Ú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Úcommonr  Ú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   r-   r0   r‡   rá   rV   r   r  r3   r.   r,   ú<module>r.     sÈ  ðÝ "÷ñ ó
 ã Ý "Û å Ý 2Ý 4å 2Ý 0Ý :ã ß  Ð  Ý 'å 3÷õ JÝ A÷ñ ñ Ý*å$Ý(Ý'å.ó-ô&M$ˆhô M$ó`
6ð  ØØØØ*.ØØØð:ð
 ð:ð ð:ð (ó:ð~ ØØØØØØ*.ØØðð
 ðð 
ðð ðð (óðH ØØØØØØ*.ØØðð
 ðð 
ðð ðð (óðD ØØØØØØ*.ØØØð?àð?ð ð	?ð
 
ð?ð ð?ð (ð?ð ð?ð ô?r.   