+
    NV-jÎD  ã                  óH  € R t ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RI	t
^ RI	Ht ^ RIHt ]'       d   ^ RIHt ^ RIHt R!R ltR!R	 ltR
 tR"R ltR"R R lltR tR#R ltR tR$R ltR%R ltR#R ltR R ltR&R ltR!R lt R'R lt!R(R lt"R t#R t$R R lt%R)R lt&R t'R  t(R# )*zF
Module consolidating common testing functions for checking plotting.
)Úannotations)ÚTYPE_CHECKINGN)Úis_list_like)ÚSeries)ÚSequence©ÚAxesc                ó  € V'       d   Vf   \        R4      h\        V 4      p V  F]  pV'       d?   VP                  4       f   Q h\        VP                  4       P	                  4       V4       KI  VP                  4       f   K]  Q h	  R# )a  
Check each axes has expected legend labels

Parameters
----------
axes : matplotlib Axes object, or its list-like
labels : list-like
    expected legend labels
visible : bool
    expected legend visibility. labels are checked only when visible is
    True
Nz-labels must be specified when visible is True)Ú
ValueErrorÚ_flatten_visibleÚ
get_legendÚ_check_text_labelsÚ	get_texts)ÚaxesÚlabelsÚvisibleÚaxs   &&& Úm/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/tests/plotting/common.pyÚ_check_legend_labelsr      sk   € ÷ �F’NÜÐHÓIÐIÜ˜DÓ!€DÛˆßØ—=‘=“?Ò.Ð.Ð.Ü˜rŸ}™}›×8Ñ8Ó:¸FÖCà—=‘=“?Ô*Ð*Ð*ó ó    c                óê   € V'       d   Vf   \        R4      hV'       d;   V P                  4       w  r4V Uu. uF  qUP                  4       NK  	  ppWa8X  g   Q hR# V P                  4       e   Q hR# u upi )zò
Check ax has expected legend markers

Parameters
----------
ax : matplotlib Axes object
expected_markers : list-like
    expected legend markers
visible : bool
    expected legend visibility. labels are checked only when visible is
    True
Nz.Markers must be specified when visible is True)r
   Úget_legend_handles_labelsÚ
get_markerr   )r   Úexpected_markersr   ÚhandlesÚ_ÚhandleÚmarkerss   &&&    r   Ú_check_legend_markerr   /   sj   € ÷ Ð$Ò,ÜÐIÓJÐJßØ×1Ñ1Ó3‰
ˆÙ5<Ó=±W¨6×$Ñ$Ö&±WˆÐ=ØÔ*Ð*Ò*à�}‰}‹Ò&Ð&Ò&ùò >s   ¶A0c                ó  € V P                  4       pVP                  4       p\        V4      \        V4      8X  g   Q h\        W#RR7       F;  w  rEVP                  4       pVP                  4       p\        P
                  ! Wg4       K=  	  R# )zt
Check each axes has identical lines

Parameters
----------
xp : matplotlib Axes object
rs : matplotlib Axes object
T©ÚstrictN)Ú	get_linesÚlenÚzipÚ
get_xydataÚtmÚassert_almost_equal)ÚxpÚrsÚxp_linesÚrs_linesÚxplÚrslÚxpdataÚrsdatas   &&      r   Ú_check_datar0   F   si   € ð �|‰|‹~€HØ�|‰|‹~€Häˆx‹=œC ›MÔ)Ð)Ð)Ü˜°4×8‰ˆØ—‘Ó!ˆØ—‘Ó!ˆÜ
×Ò˜vÖ.ó 9r   c                óœ   € ^ RI Hp \        W4      '       g   \        V 4      '       g   V .p V  F  pVP	                  4       V8X  d   K  Q h	  R# )zÀ
Check each artist is visible or not

Parameters
----------
collections : matplotlib Artist or its list-like
    target Artist or its list or collection
visible : bool
    expected visibility
)Ú
CollectionN)Úmatplotlib.collectionsr2   Ú
isinstancer   Úget_visible)Úcollectionsr   r2   Úpatchs   &&  r   Ú_check_visibler8   Y   sD   € õ 2ä�k×.Ò.´|ÀK×7PÒ7PØ"�mˆãˆØ× Ñ Ó" gÖ-Ð-Ð-ó r   c               ó$   € V ^8„  d   QhRRRRRR/# )é   r   úAxes | Sequence[Axes]ÚfilledÚboolÚreturnÚNone© )Úformats   "r   Ú__annotate__rB   m   s#   € ÷ (ñ (Ð$9ð (À4ð (ÐSWñ (r   c                óz   € \        V 4      p V  F)  pVP                   F  pVP                  V8X  d   K  Q h	  K+  	  R# )z�
Check for each artist whether it is filled or not

Parameters
----------
axes : matplotlib Axes object, or its list-like
filled : bool
    expected filling
N)r   ÚpatchesÚfill)r   r<   r   r7   s   &&  r   Ú_check_patches_all_filledrF   m   s8   € ô ˜DÓ!€DÛˆØ—Z”ZˆEØ—:‘: Ö'Ð'Ð'ó  ó r   c                ó˜   € V P                  4       p\        \        W!4      4      pV P                   Uu. uF  qCV,          NK  	  up# u upi ©N)ÚuniqueÚdictr$   Úvalues)ÚseriesÚcolorsrI   ÚmappedÚvs   &&   r   Ú_get_colors_mappedrP   ~   s>   € Ø�]‰]‹_€Fô ”#�fÓ%Ó&€FØ%Ÿ}š}Ó-™}˜!�1�IˆI™}Ñ-Ð-ùÒ-s   ³Ac                ó°  € ^ RI Hp ^ RIHpHpHp ^ RIHp VP                  p	Veß   Ve   \        W14      pVR\        V 4       p\        V 4      \        V4      8X  g   Q h\        WRR7       F•  w  r«\        W¨4      '       d#   V
P                  4       pV	P                  V4      pMD\        W§V34      '       d"   \        V
P!                  4       ^ ,          4      pMV
P!                  4       pV	P                  V4      pWÍ8X  d   K•  Q h	  VeÎ   Ve   \        W24      pVR\        V 4       p\        V 4      \        V4      8X  g   Q h\        WRR7       F‚  w  r«\        W¥4      '       d   V
P#                  4       ^ ,          pMV
P#                  4       p\        V\$        P&                  4      '       d   \        V4      pV	P                  V4      pWÍ8X  d   K‚  Q h	  R# R# )aË  
Check each artist has expected line colors and face colors

Parameters
----------
collections : list-like
    list or collection of target artist
linecolors : list-like which has the same length as collections
    list of expected line colors
facecolors : list-like which has the same length as collections
    list of expected face colors
mapping : Series
    Series used for color grouping key
    used for andrew_curves, parallel_coordinates, radviz test
)rM   )r2   ÚLineCollectionÚPolyCollection)ÚLine2DNTr    )Ú
matplotlibrM   r3   r2   rR   rS   Úmatplotlib.linesrT   ÚColorConverterrP   r#   r$   r4   Ú	get_colorÚto_rgbaÚtupleÚget_edgecolorÚget_facecolorÚnpÚndarray)r6   Ú
linecolorsÚ
facecolorsÚmappingrM   r2   rR   rS   rT   Úconvr7   ÚcolorÚresultÚexpecteds   &&&&          r   Ú_check_colorsrf   †   s£  € õ  "÷ñ õ
 (à× Ñ €DØÒØÒÜ+¨GÓ@ˆJØ#Ð$6¤c¨+Ó&6Ð7ˆJä�;Ó¤3 z£?Ô2Ð2Ð2Ü À×E‰LˆEÜ˜%×(Ò(ØŸ™Ó*�àŸ™ fÓ-‘Ü˜E°NÐ#C×DÒDÜ˜u×2Ñ2Ó4°QÕ7Ó8‘à×,Ñ,Ó.�à—|‘| EÓ*ˆHØÖ%Ð%Ð%ñ Fð ÒØÒÜ+¨GÓ@ˆJØ#Ð$6¤c¨+Ó&6Ð7ˆJä�;Ó¤3 z£?Ô2Ð2Ð2Ü À×E‰LˆEÜ˜%×,Ò,à×,Ñ,Ó.¨qÕ1‘à×,Ñ,Ó.�ä˜&¤"§*¡*×-Ò-Ü˜v›�à—|‘| EÓ*ˆHØÖ%Ð%Ð%ó Fñ r   c                ó  € \        V 4      '       g   V P                  4       V8X  g   Q hR# V  Uu. uF  q"P                  4       NK  	  pp\        V4      \        V4      8X  g   Q h\        W1RR7       F  w  rEWE8X  d   K  Q h	  R# u upi )zî
Check each text has expected labels

Parameters
----------
texts : matplotlib Text object, or its list-like
    target text, or its list
expected : str or list-like which has the same length as texts
    expected text label, or its list
Tr    N)r   Úget_textr#   r$   )Útextsre   Útr   ÚlabelÚes   &&    r   r   r   Æ   st   € ô ˜×ÒØ�~‰~Ó 8Ô+Ð+Ò+á(-Ó.© 1—*‘*–,©ˆÐ.Ü�6‹{œc (›mÔ+Ð+Ð+Ü˜F°T×:‰HˆEØ–:Ð�:ó ;ùò /s   ¯Bc                ó^  € ^ RI Hp \        V 4      p V  EF”  pVf   VeÀ   \        VP                  P                  4       V4      '       d   VP                  4       pM'VP                  4       VP                  RR7      ,           pV FW  pVe&   \        P                  ! VP                  4       V4       Vf   K2  \        P                  ! VP                  4       V4       KY  	  Vf   Vf   KÕ  \        VP                  P                  4       V4      '       d   VP                  4       pM'VP                  4       VP                  RR7      ,           pV FW  pVe&   \        P                  ! VP                  4       V4       Vf   K2  \        P                  ! VP                  4       V4       KY  	  EK—  	  R# )a/  
Check each axes has expected tick properties

Parameters
----------
axes : matplotlib Axes object, or its list-like
xlabelsize : number
    expected xticks font size
xrot : number
    expected xticks rotation
ylabelsize : number
    expected yticks font size
yrot : number
    expected yticks rotation
)ÚNullFormatterNT)Úminor)Úmatplotlib.tickerrn   r   r4   ÚxaxisÚget_minor_formatterÚget_xticklabelsr&   r'   Úget_fontsizeÚget_rotationÚyaxisÚget_yticklabels)	r   Ú
xlabelsizeÚxrotÚ
ylabelsizeÚyrotrn   r   r   rk   s	   &&&&&    r   Ú_check_ticks_propsr|   Ú   sW  € õ  0ä˜DÓ!€DÜˆØÒ! TÒ%5Ü˜"Ÿ(™(×6Ñ6Ó8¸-×HÒHð ×+Ñ+Ó-‘à×+Ñ+Ó-°×0BÑ0BÈÐ0BÓ0NÕN�ã�ØÒ)Ü×*Ò*¨5×+=Ñ+=Ó+?ÀÔLØÔ#Ü×*Ò*¨5×+=Ñ+=Ó+?ÀÖFñ	  ð Ò! TÔ%5Ü˜"Ÿ(™(×6Ñ6Ó8¸-×HÒHØ×+Ñ+Ó-‘à×+Ñ+Ó-°×0BÑ0BÈÐ0BÓ0NÕN�ã�ØÒ)Ü×*Ò*¨5×+=Ñ+=Ó+?ÀÔLØÔ#Ü×*Ò*¨5×+=Ñ+=Ó+?ÀÖFô	  ó+ r   c                ó²   € \        V 4      p V  FE  pVP                  P                  4       V8X  g   Q hVP                  P                  4       V8X  d   KE  Q h	  R# )zÒ
Check each axes has expected scales

Parameters
----------
axes : matplotlib Axes object, or its list-like
xaxis : {'linear', 'log'}
    expected xaxis scale
yaxis : {'linear', 'log'}
    expected yaxis scale
N)r   rq   Ú	get_scalerv   )r   rq   rv   r   s   &&& r   Ú_check_ax_scalesr   	  sN   € ô ˜DÓ!€DÛˆØ�x‰x×!Ñ!Ó# uÔ,Ð,Ð,Ø�x‰x×!Ñ!Ó# uÖ,Ð,Ð,ó r   c                ó¨  € ^ RI Hp Vf   Rp\        V 4      pVe<   \        V4      V8X  g   Q hV F#  p\        VP	                  4       4      ^ 8”  d   K#  Q h	  Vež   \        4       p\        4       pV! V 4       F_  pVP                  4       P                  4       p	VP                  V	^ ,          ^ ,          4       VP                  V	^ ,          ^,          4       Ka  	  \        V4      \        V4      3p
W¢8X  g   Q h\        P                  ! V^ ,          P                  P                  4       \        P                  ! V\        P                  R7      4       R# )an  
Check expected number of axes is drawn in expected layout

Parameters
----------
axes : matplotlib Axes object, or its list-like
axes_num : number
    expected number of axes. Unnecessary axes should be set to
    invisible.
layout : tuple
    expected layout, (expected number of rows , columns)
figsize : tuple
    expected figsize. default is matplotlib default
©Úflatten_axesN)Údtype)gš™™™™™@g333333@)Ú!pandas.plotting._matplotlib.toolsr‚   r   r#   Úget_childrenÚsetÚget_positionÚ
get_pointsÚaddr&   Úassert_numpy_array_equalÚfigureÚget_size_inchesr]   ÚarrayÚfloat64)r   Úaxes_numÚlayoutÚfigsizer‚   Úvisible_axesr   Úx_setÚy_setÚpointsrd   s   &&&&       r   Ú_check_axes_shaper–     s  € õ ?à‚ØˆÜ# DÓ)€LàÒÜ�<Ó  HÔ,Ð,Ð,ÛˆBä�r—‘Ó(Ó)¨AÖ-Ð-Ð-ñ ð ÒÜ“ˆÜ“ˆÙ˜tÖ$ˆBà—_‘_Ó&×1Ñ1Ó3ˆFØ�I‰I�f˜Q•i •lÔ#Ø�I‰I�f˜Q•i •lÖ#ñ	 %ô
 �e“*œc %›jÐ)ˆØÔÐÐä×ÒØ�Q�×Ñ×.Ñ.Ó0Ü
�Š�¤§
¡
Ô+ör   c               ó    € V ^8„  d   QhRRRR/# )r:   r   r;   r>   zSequence[Axes]r@   )rA   s   "r   rB   rB   G  s   € ÷ ñ Ð0ð °^ñ r   c                ó|   € ^ RI Hp V! V 4      pV Uu. uF  q3P                  4       '       g   K  VNK  	  p pV # u upi )zo
Flatten axes, and filter only visible

Parameters
----------
axes : matplotlib Axes object, or its list-like

r�   )r„   r‚   r5   )r   r‚   Úaxes_ndarrayr   s   &   r   r   r   G  s8   € õ ?á Ó%€LÙ%Ó:™�2¯©×)9�BˆB™€DÐ:Ø€Kùò ;s   “9¯9c                óü   € \        V 4      p V  Fj  pVP                  p^ p^ pV FA  p\        VRR4      p\        VRR4      p	V'       d
   V^,          pV	'       g   K8  V^,          pKC  	  W8X  g   Q hW&8X  d   Kj  Q h	  R# )zÔ
Check axes has expected number of errorbars

Parameters
----------
axes : matplotlib Axes object, or its list-like
xerr : number
    expected number of x errorbar
yerr : number
    expected number of y errorbar
Úhas_xerrFÚhas_yerrN)r   Ú
containersÚgetattr)
r   ÚxerrÚyerrr   r�   Ú
xerr_countÚ
yerr_countÚcr›   rœ   s
   &&&       r   Ú_check_has_errorbarsr¤   W  s…   € ô ˜DÓ!€DÛˆØ—]‘]ˆ
Øˆ
Øˆ
ÛˆAÜ˜q *¨eÓ4ˆHÜ˜q *¨eÓ4ˆHßØ˜a•�
ß‰xØ˜a•’
ñ ð Ô!Ð!Ð!ØÖ!Ð!Ð!ó r   c                ó   € ^ RI Hp R\        RVR\        /pVfl   Vf   Rp\	        WV,          4      '       g   Q hVR8X  dC   \	        V P
                  V4      '       g   Q h\	        V P                  \        4      '       g   Q hR# R# Vf(   \        V 4       F  p\	        Wd4      '       d   K  Q h	  R# \	        V \        4      '       g   Q h\        V P                  4       4      \        V4      8X  g   Q hV P                  4        EF  w  rx\	        W…V,          4      '       g   Q hVR8X  d$   V'       d   VP                  4       V8X  g   Q hKH  KJ  VR8X  dl   V'       d"   VP
                  P                  4       V8X  g   Q h\	        VP
                  V4      '       g   Q h\	        VP                  \        4      '       g   Q hK¼  VR8X  dB   VR,          ^ ,          p	V	P                  p
V'       d   V
P                  4       V8X  g   Q hEK  EK  \        h	  R# )a  
Check box returned type is correct

Parameters
----------
returned : object to be tested, returned from boxplot
return_type : str
    return_type passed to boxplot
expected_keys : list-like, optional
    group labels in subplot case. If not passed,
    the function checks assuming boxplot uses single ax
check_ax_title : bool
    Whether to check the ax.title is the same as expected_key
    Intended to be checked by calling from ``boxplot``.
    Normal ``plot`` doesn't attach ``ax.title``, it must be disabled.
r   rJ   r   ÚbothNÚmedians)Úmatplotlib.axesr   rJ   rZ   r4   r   Úlinesr   r   ÚsortedÚkeysÚitemsÚ	get_titler   ÚAssertionError)ÚreturnedÚreturn_typeÚexpected_keysÚcheck_ax_titler   ÚtypesÚrÚkeyÚvalueÚliner   s   &&&&       r   Ú_check_box_return_typer¸   s  s¾  € õ& %à”T˜6 4¨´Ð7€EØÒàÒØ ˆKä˜(¨+Õ$6×7Ò7Ð7Ð7Ø˜&Ô Ü˜hŸk™k¨4×0Ò0Ð0Ð0Ü˜hŸn™n¬d×3Ò3Ð3Ò3ñ !ð
 ÒÜ% hÖ/�Ü! !×*Ô*Ð*Ð*ñ 0áä˜(¤F×+Ò+Ð+Ð+ä�h—m‘m“oÓ&¬&°Ó*?Ô?Ð?Ð?Ø"Ÿ.™.×*‰JˆCÜ˜e¨;Õ%7×8Ò8Ð8Ð8à˜fÔ$ß!Ø Ÿ?™?Ó,°Ô3Ð3Ò3ñ "à Ô&ß!Ø Ÿ8™8×-Ñ-Ó/°3Ô6Ð6Ð6Ü! %§(¡(¨D×1Ò1Ð1Ð1Ü! %§+¡+¬t×4Ò4Ð4Ò4Ø Ô&Ø˜YÕ'¨Õ*�Ø—y‘y�ß!ØŸ>™>Ó+¨sÔ2Ð2Ó2ò "ô %Ð$ó# +r   c                óŽ  a€ ^ RI oV3R lpVf   / p^pV EF*  pSP                  P                  ^^\        V4      ,          V4       V^,          pSP	                  RRR7       V P
                  ! R	RV/VB  V! 4       '       d   Q hSP                  P                  4        SP                  P                  ^^\        V4      ,          V4       V^,          pSP	                  RRR7       V P
                  ! R	RVRR/VB  V! 4       '       d   Q hSP                  P                  4        VR
9  g   EK  SP                  P                  ^^\        V4      ,          V4       V^,          pSP	                  RRR7       V P
                  ! R	RV/VB  V! 4       '       g   Q hSP                  P                  4        SP                  P                  ^^\        V4      ,          V4       V^,          pSP	                  RRR7       V P
                  ! R	RVRR/VB  V! 4       '       g   Q hSP                  P                  4        EK-  	  R# )é    Nc                 ó¾  <€ SP                   P                  4       P                  P                  4       p SP                   P                  4       P                  P                  4       p\
        ;QJ d    R  V  4       F  '       d   K   RM	  RM! R  V  4       4      p\
        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      pT;'       d    T'       * # )c              3  ó^   "  € T F#  qP                   P                  4       '       * x € K%  	  R # 5irH   ©Úgridliner5   ©Ú.0Úgs   & r   Ú	<genexpr>Ú;_check_grid_settings.<locals>.is_grid_on.<locals>.<genexpr>¸  ó!   é € Ð@¹°A—z‘z×-Ñ-Ó/×/Ñ/»ùó   ‚+-FTc              3  ó^   "  € T F#  qP                   P                  4       '       * x € K%  	  R # 5irH   r½   r¿   s   & r   rÂ   rÃ   ¹  rÄ   rÅ   )ÚpyplotÚgcarq   Úget_major_ticksrv   Úall)ÚxticksÚyticksÚxoffÚyoffÚmpls       €r   Ú
is_grid_onÚ(_check_grid_settings.<locals>.is_grid_onµ  s�   ø€ Ø—‘—‘Ó!×'Ñ'×7Ñ7Ó9ˆØ—‘—‘Ó!×'Ñ'×7Ñ7Ó9ˆß‹sÑ@¹Ó@�s�sŠsÑ@¹Ó@Ó@ˆß‹sÑ@¹Ó@�s�sŠsÑ@¹Ó@Ó@ˆà—M�M˜TÔ"Ð"r   r   F)ÚgridÚkindTrÒ   r@   )ÚpieÚhexbinÚscatter)rU   rÇ   Úsubplotr#   ÚrcÚplotÚclf)ÚobjÚkindsÚkwsrÐ   ÚspndxrÓ   rÏ   s   &&&   @r   Ú_check_grid_settingsrß   °  sÑ  ø€ ó õ#ð ‚{ØˆØ€EÜˆØ�
‰
×Ñ˜1˜a¤# e£*�n¨eÔ4Ø��
ˆØ�‰ˆv˜EˆÔ"Ø�ŠÑ"�dÐ"˜cÒ"Ù—<’<ÐÐØ�
‰
�‰Ôà�
‰
×Ñ˜1˜a¤# e£*�n¨eÔ4Ø��
ˆØ�‰ˆv˜DˆÔ!Ø�ŠÑ.�dÐ. Ð.¨#Ò.Ù—<’<ÐÐØ�
‰
�‰ÔàÐ3×3Ø�J‰J×Ñ˜q !¤c¨%£j¥.°%Ô8Ø�Q�JˆEØ�F‰F�6 ˆFÔ%Ø�HŠHÑ&˜$Ð& #Ò&Ù—<’<Ð�<Ø�J‰J�N‰NÔà�J‰J×Ñ˜q !¤c¨%£j¥.°%Ô8Ø�Q�JˆEØ�F‰F�6 ˆFÔ&Ø�HŠHÑ1˜$Ð1 TÐ1¨SÒ1Ù—<’<Ð�<Ø�J‰J�N‰N×ó9 r   c                óJ   € V R,           Uu. uF  q"V,          NK  	  up# u upi )zD
Auxiliary function for correctly unpacking cycler after MPL >= 1.5
zaxes.prop_cycler@   )ÚrcParamsÚfieldrO   s   && r   Ú_unpack_cyclerrã   ß  s(   € ð 'Ð'8Ö9Ó:Ñ9˜ˆe�HˆHÑ9Ñ:Ð:ùÒ:s   Œ c                ó(   € V P                   R ,          # )Úx©Ú_shared_axes©r   s   &r   Ú
get_x_axisré   æ  ó   € Ø�?‰?˜3ÕÐr   c                ó(   € V P                   R ,          # )Úyræ   rè   s   &r   Ú
get_y_axisrí   ê  rê   r   c               ó   € V ^8„  d   QhRR/# )r:   r>   r?   r@   )rA   s   "r   rB   rB   î  s   € ÷ <ñ <°ñ <r   c                óÈ  € ^ RI Hp ^ RIHp \	        V \
        \        P                  34      '       dt   \	        V \
        4      '       d   V P                  p V P                  R4       F:  pR\        V4      P                  : 2p\	        W2\        34      '       d   K5  Q V4       h	  R# R\        V 4      P                  : 2p\	        W\        \        34      '       g   Q V4       hR# )rº   )ÚArtistr   zBone of 'objs' is not a matplotlib Axes instance, type encountered zoobjs is neither an ndarray of Artist instances nor a single ArtistArtist instance, tuple, or dict, 'objs' is a Néÿÿÿÿ)Úmatplotlib.artistrð   r¨   r   r4   r   r]   r^   Ú_valuesÚreshapeÚtypeÚ__name__rJ   rZ   )Úobjsrð   r   ÚelÚmsgs   &    r   Ú"assert_is_valid_plot_return_objectrú   î  sÁ   € Ý(Ý$ä�$œ¤§¡Ð,×-Ò-Ü�dœF×#Ò#Ø—<‘<ˆDØ—,‘,˜rÖ"ˆBð$Ü$(¨£H×$5Ñ$5Ñ#8ð:ð ô ˜b¬ ,×/Ô/Ð4°Ó4Ð/ó #ðBä�D‹z×"Ñ"Ñ%ð'ð 	ô
 ˜$¬´Ð 5×6Ò6Ð;¸Ó;Ò6r   c                óÖ   € ^ RI Hp V'       d   \        pM\        pRpVP	                  RVP                  4       4      pVP                  4        V! W3/ VB  F  p\        V4       K  	  V# )a{  
Create plot and ensure that plot return object is valid.

Parameters
----------
f : func
    Plotting function.
default_axes : bool, optional
    If False (default):
        - If `ax` not in `kwargs`, then create subplot(211) and plot there
        - Create new subplot(212) and plot there as well
        - Mind special corner case for bootstrap_plot (see `_gen_two_subplots`)
    If True:
        - Simply run plotting function with kwargs provided
        - All required axes instances will be created automatically
        - It is recommended to use it when the plotting function
        creates multiple axes itself. It helps avoid warnings like
        'UserWarning: To output multiple subplots,
        the figure containing the passed axes is being cleared'
**kwargs
    Keyword arguments passed to the plotting function.

Returns
-------
Plot object returned by the last plotting.
Nr‹   )Úmatplotlib.pyplotrÇ   Ú_gen_default_plotÚ_gen_two_subplotsÚgetÚgcfrÚ   rú   )ÚfÚdefault_axesÚkwargsÚpltÚ	gen_plotsÚretÚfigs   &&,    r   Ú_check_plot_worksr    s[   € õ6 $çÜ%‰	ä%ˆ	à
€CØ
�*‰*�X˜sŸw™w›yÓ
)€CØ‡G�G„Iá˜Ñ* 6Ô*ˆÜ*¨3Ö/ñ +ð €Jr   c              +  ó"   "  € V ! R/ VB x € R# 5i)z
Create plot in a default way.
Nr@   r@   ©r  r  r  s   &&,r   rý   rý   0  s   é € ñ ‰+ˆf‰+Ôùs   ‚c              +  óÞ   "  € RV9  d   VP                  ^Ó4       V ! R/ VB x € V \        P                  P                  J d   RV9  g   Q hMVP                  ^Ô4      VR&   V ! R/ VB x € R# 5i)z1
Create plot on two subplots forcefully created.
r   Nr@   )Úadd_subplotÚpdÚplottingÚbootstrap_plotr
  s   &&,r   rþ   rþ   7  se   é € ð �6ÔØ�‰˜ÔÙ
‰+ˆf‰+ÒàŒB�K‰K×&Ñ&Ó&Ø˜6Ô!Ð!Ñ!à—‘ sÓ+ˆˆt‰Ù
‰+ˆf‰+Ôùs   ‚A+A-)NT)T)NNN)NNNN)Úlinearr  )rº   rº   rH   )rc   )F))Ú__doc__Ú
__future__r   Útypingr   Únumpyr]   Úpandas.core.dtypes.apir   Úpandasr  r   Úpandas._testingÚ_testingr&   Úcollections.abcr   r¨   r   r   r   r0   r8   rF   rP   rf   r   r|   r   r–   r   r¤   r¸   rß   rã   ré   rí   rú   r  rý   rþ   r@   r   r   Ú<module>r     sŸ   ðñõ #å  ã å /ã Ý Ý çÝ(å$ô+ô0'ò./ô&.÷((ò".ô=&ò@ô(,Gô^-ô$)õXô "ô8:%ôz,ô^;ò ò õ<ô,)òXôr   