a
    é´«j>„ ã                   @   s,  d Z ddlmZmZ ddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlm  mZ ddlmZ ddlZddlmZmZmZmZmZmZmZmZmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 e
 1d	¡Z2e
 1d
¡Z3G dd„ dƒZ4dd„ Z5dS )z Test cases for DataFrame.plot é    )ÚdateÚdatetimeN)Úis_list_like)	Ú	DataFrameÚIndexÚ
MultiIndexÚPeriodIndexÚSeriesÚbdate_rangeÚ
date_rangeÚoption_contextÚplotting)Ú_check_ax_scalesÚ_check_axes_shapeÚ_check_box_return_typeÚ_check_colorsÚ_check_dataÚ_check_grid_settingsÚ_check_has_errorbarsÚ_check_legend_labelsÚ_check_plot_worksÚ_check_text_labelsÚ_check_ticks_propsÚ_check_visibleÚ
get_y_axis)ÚVersion©Úpprint_thingÚ
matplotlibzmatplotlib.pyplotc                   @   s  e Zd Zejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZ	ejj
d	d
�ejjdd„ ƒƒZejjdd„ ƒZejjej ddg d¢idg d¢idddœddddœg¡dd„ ƒƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjd d!„ ƒZejjej d"d#d$g¡d%d&„ ƒƒZejjd'd(„ ƒZej d)ed*ƒd+d,gd+d,gd+d,gd-d+gd-d+gd+d-gd+d-gd,d-gd,d-gd+d.gd+d.gd+d/gd+d/gg¡d0d1„ ƒZejjej d2g d3¢¡d4d5„ ƒƒZejjej d6d7i gd8i gd9i gd:d;d;igd<d=d;d>œgd?d=d;d>œgg¡d@dA„ ƒƒZdBdC„ ZdDdE„ ZdFdG„ ZdHdI„ ZdJdK„ ZdLdM„ Zej dNdOdPg¡dQdR„ ƒZej dSg dT¢¡dUdV„ ƒZ dWdX„ Z!dYdZ„ Z"d[d\„ Z#d]d^„ Z$d_d`„ Z%dadb„ Z&ej dce'j(e'j)g¡ddde„ ƒZ*ej dfe+d;g dg¢ig dh¢di�e+d;djdke'j,dldmdndogidkdjdldpe'j,dldpgdi�g¡dqdr„ ƒZ-dsdt„ Z.dudv„ Z/dwdx„ Z0ej dyd7dzg¡ej d{d|d}g¡d~d„ ƒƒZ1ej dyd7dzg¡d€d�„ ƒZ2d‚dƒ„ Z3ej dyd7dzg¡d„d…„ ƒZ4ej d†e5d‡ƒe6dˆd.d‡d‰�g¡dŠd‹„ ƒZ7ej d†e5d‡ƒe6dˆd.d‡d‰�g¡dŒd�„ ƒZ8ej d†e5d‡ƒe6dˆd.d‡d‰�g¡ej di dŽd�ig¡d�d‘„ ƒƒZ9ej di d’dig¡d“d”„ ƒZ:d•d–„ Z;ejj
d�d—d˜�ej dŽdd�g¡d™dš„ ƒƒZ<d›dœ„ Z=ej dŽdd�g¡d�dž„ ƒZ>dŸd „ Z?ej d¡d¢d£g¡ej dŽdd�g¡d¤d¥„ ƒƒZ@ej d¡d¢d£g¡d¦d§„ ƒZAd¨d©„ ZBdªd«„ ZCd¬d­„ ZDd®d¯„ ZEd°d±„ ZFej d†eGeHjIg¡d²d³„ ƒZJej d´d>dµg¡d¶d·„ ƒZKd¸d¹„ ZLdºd»„ ZMd¼d½„ ZNej d´d¾d¿g¡dÀdÁ„ ƒZOej dÂd�ejPdeQ RdÃ¡dÄ�g¡ej d´dÅd¿g¡ej dÆg dÇ¢g dÈ¢g¡dÉdÊ„ ƒƒƒZSej dËdd�g¡ej dÌg dÍ¢g dÎ¢f¡dÏdÐ„ ƒƒZTej d´g dÑ¢¡dÒdÓ„ ƒZUej dÔdÕdÖg¡d×dØ„ ƒZVdÙdÚ„ ZWdÛdÜ„ ZXdÝdÞ„ ZYdßdà„ ZZdádâ„ Z[ejjej di dãd�idddäœdŽdig¡dådæ„ ƒƒZ\ejjdçdè„ ƒZ]ejjdédê„ ƒZ^ejjdëdì„ ƒZ_dídî„ Z`dïdð„ Zadñdò„ Zbej cdó¡ejj
edeejfƒeddôƒkdõd
�död÷„ ƒƒZgej cdø¡ejj
edeejfƒeddôƒkdùd
�dúdû„ ƒƒZhej cdó¡ejj
edeejfƒeddôƒkdõd
�düdý„ ƒƒZidþdÿ„ Zjej �d g �d¢¡�d�d„ ƒZk�d�d„ Zl�d�d„ Zm�d�d	„ Zn�d
�d„ Zo�d�d„ Zp�d�d„ Zq�d�d„ Zr�d�d„ Zs�d�d„ Zt�d�d„ Zuej �d�de'jv�d�d� �de'jv�d�d� g¡�d�d„ ƒZw�d�d�d „Zxej �d!e' ye' zg �d"¢¡e' zg �d#¢¡¡e' ye' zg �d"¢¡e' zg �d$¢¡¡e' ye' zg �d"¢¡e' zg �d%¢¡¡�d&œe' ye' ze'j,d|�d'�d(d‡�d)g¡e' zg �d*¢¡¡e' ye' zd|e'j,�d'�d(d‡�d)g¡e' zg �d+¢¡¡e' ye' zd|�d'�d(e'j,d‡�d)g¡e' zg �d,¢¡¡�d&œg¡�d-�d.„ ƒZ{�d/�d0„ Z|ej �d1�d2�d3�d4dÖœ�d2�d3d¿œg �d5¢�d2�d3gg¡�d6�d7„ ƒZ}�d8�d9„ Z~ej �d:g �d;¢¡�d<�d=„ ƒZ�d>�d?„ Z€ej dye�j‚jƒ¡�d@�dA„ ƒZ„ej dyd<d?g¡�dB�dC„ ƒZ…ej dye�j‚jƒ¡�dD�dE„ ƒZ†ej dyee�j‚jƒƒdzg ¡�dF�dG„ ƒZ‡�dH�dI„ Zˆej �dJd,d-gd+�dKfd+gd,d-g�dL�dMgfg¡�dN�dO„ ƒZ‰�dP�dQ„ ZŠej �dR�dSd+gd,fg¡�dT�dU„ ƒZ‹ej �dVd+d,g�dLg�dWgfd+d,d-g�dL�dMg�dW�dXgf�dYd|�d'g�dZ�d[g�d\�d]gfg¡�d^�d_„ ƒZŒej �d`�dYd|d+d,gfd|�dY�dYd|gfg¡�da�db„ ƒZ��dc�dd„ ZŽ�de�df„ Z�ej �dgd#e'j�g¡�dh�di„ ƒZ‘ej �dji �dkf�dl�dmi�dmf�dn�doi�dofg¡�dp�dq„ ƒZ’�dr�ds„ Z“ej d;�dt�d'g¡�du�dv„ ƒZ”�dw�dx„ Z•�dy�dz„ Z–�d{�d|„ Z—ejjej d�d}didd�d~œ�ddig¡�d€�d�„ ƒƒZ˜ejj�d‚�dƒ„ ƒZ™ejj�d„�d…„ ƒZšejjej �d†�d†�d‡g¡�dˆ�d‰„ ƒƒZ›ejj�dŠ�d‹„ ƒZœejj�dŒ�d�„ ƒZ�ejjej dyg �dŽ¢¡ej �d�eže' v�d�¡�d‘ d=�d’�e+e' v�d�¡�d‘ e' v�d�¡�d“ d>œƒg¡�d”�d•„ ƒƒƒZŸejjej dyg �dŽ¢¡ej �d–e+e' v�d�¡�d‘ e' v�d�¡�d“ d>œƒe+e' v�d�¡�d‘ e' v�d�¡�d“ d>œƒfeže' v�d�¡�d‘ d=�d’�eže' v�d�¡�d‘ d=�d’�f�d—g¡�d˜�d™„ ƒƒƒZ ejjej dyg �dŽ¢¡�dš�d›„ ƒƒZ¡ejj
�dœe¢�d���dž�dŸ„ ƒZ£�d �d¡„ Z¤ejjej dyd7d8g¡�d¢�d£„ ƒƒZ¥ejj�d¤�d¥„ ƒZ¦ejjej �d¦�d§�d¨„ e+g¡�d©�dª„ ƒƒZ§ej dyg �dŽ¢¡�d«�d¬„ ƒZ¨�d­�d®„ Z©�d¯�d°„ Zª�d±�d²„ Z«�d³�d´„ Z¬�dµ�d¶„ Z­�d·�d¸„ Z®�d¹�dº„ Z¯�d»�d¼„ Z°�d½�d¾„ Z±ej dye�j‚j²¡�d¿�dÀ„ ƒZ³�dÁ�dÂ„ Z´�dÃ�dÄ„ Zµ�dÅ�dÆ„ Z¶�dÇ�dÈ„ Z·�dÉ�dÊ„ Z¸�dË�dÌ„ Z¹�dÍ�dÎ„ Zºej �dÏg �dÐ¢¡�dÑ�dÒ„ ƒZ»�dÓ�dÔ„ Z¼�dÕ�dÖ„ Z½ej dyd7dzg¡�d×�dØ„ ƒZ¾�dÙ�dÚ„ Z¿�dÛ�dÜ„ ZÀ�dÝ�dÞ„ ZÁej dy�dß¡�dà�dá„ ƒZÂ�dâ�dã„ ZÃ�dä�då„ ZÄ�dæ�dç„ ZÅej �dèg �dé¢¡�dê�dë„ ƒZÆ�dì�dí„ ZÇ�dî�dï„ ZÈej dy�dð¡�dñ�dò„ ƒZÉej �dó�dô�dõ�dö�d÷d#�død|�d'gfg¡ej dyg �dù¢¡�dú�dû„ ƒƒZÊej �düg �dý¢¡ej dyd<d?g¡�dþ�dÿ„ ƒƒZËej d’�d ¡�d�d„ ƒZÌejj�d�d„ ƒZÍd#S (  ÚTestDataFramePlotsc                 C   sD   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	|j
d
d� d S )Né   ©é
   é   ÚABCD©Údtypeú
2000-01-01r"   ÚB©ÚperiodsÚfreq©ÚcolumnsÚindexF)Úgrid)r   ÚnpÚrandomÚdefault_rngÚstandard_normalr   ÚlistÚobjectr   r   Úplot©ÚselfÚdf© r:   úe/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/plotting/frame/test_frame.pyÚ	test_plot8   s    ýzTestDataFramePlots.test_plotc                 C   sT   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	|j
d
d
d�}t|ddd� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   T©Údefault_axesÚsubplotsr#   ©r#   é   ©Úaxes_numÚlayout©r   r0   r1   r2   r3   r   r4   r5   r   r   r6   r   ©r8   r9   Úaxesr:   r:   r;   Útest_plot_subplotsA   s    ýz%TestDataFramePlots.test_plot_subplotsc                 C   sV   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	|j
d
d
dd�}t|ddd� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   T)éÿÿÿÿr    )r>   r?   rD   r#   ©r    r    rB   rE   rF   r:   r:   r;   Ú"test_plot_subplots_negative_layoutL   s    ýüz5TestDataFramePlots.test_plot_subplots_negative_layoutc                 C   sb   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	|j
d
d
dd�}t|dd� t|ddd� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   TF)r>   r?   Ú	use_indexr   ©Úxrotr#   r@   rB   )r   r0   r1   r2   r3   r   r4   r5   r   r   r6   r   r   rF   r:   r:   r;   Útest_plot_subplots_use_index[   s    ýüz/TestDataFramePlots.test_plot_subplots_use_indexzApi changed in 3.6.0)Úreasonc                 C   sZ   t ddgddgdœƒ}d}tjt|d�� |jjdd	� W d   ƒ n1 sL0    Y  d S )
NrA   r    é   r#   ©ÚxÚyz''Line2D' object has no property 'blarg'©ÚmatchT)Zblarg)r   ÚpytestÚraisesÚAttributeErrorr6   Úline©r8   r9   Úmsgr:   r:   r;   Útest_plot_invalid_argk   s    z(TestDataFramePlots.test_plot_invalid_argc                 C   sF   t tj d¡ d¡ttjd d… ƒd�}t|jdd�}t	|dd� d S )	Nr    ©r"   rQ   r"   ©r.   T©rL   r   rM   )
r   r0   r1   r2   r4   ÚstringÚascii_lettersr   r6   r   ©r8   r9   Úaxr:   r:   r;   Útest_plot_tick_propss   s    þz'TestDataFramePlots.test_plot_tick_propsÚkwargsÚyticks)rA   é   r"   Úxticks)iœÿÿÿéd   )ÚylimZxlimTÚblah)r>   r?   Útitlec                 C   s>   t tj d¡ d¡ttjd d… ƒd�}t|jfi |¤Ž d S )Nr    r^   r"   r_   ©	r   r0   r1   r2   r4   ra   rb   r   r6   ©r8   rf   r9   r:   r:   r;   Útest_plot_other_args}   s
    þz'TestDataFramePlots.test_plot_other_argsc                 C   sÞ   t tj d¡ d¡ttjd d… ƒd�}|jddd�}t|dd	d
� |d d… D ]F}t	|j
ƒ t	| ¡ dd� t	|jdd�dd� t	|j
 ¡ gdd� qP|d fD ]6}t	|j
ƒ t	| ¡ ƒ t	|j
 ¡ gƒ t|dd� q¢d S )Nr    r^   r"   r_   Trl   )r?   rm   rQ   ©rQ   rA   rB   F©Úvisible©Úminorr   rM   )r   r0   r1   r2   r4   ra   rb   r6   r   r   ÚxaxisÚget_xticklabelsÚ	get_labelr   )r8   r9   rG   rd   r:   r:   r;   Útest_plot_visible_axŽ   s     þ	

z'TestDataFramePlots.test_plot_visible_axc                 C   s:   t tj d¡ d¡ttjd d… ƒd�}t|jdd� d S )Nr    r^   r"   r_   rl   ©rm   rn   r7   r:   r:   r;   Útest_plot_title¦   s
    þz"TestDataFramePlots.test_plot_titlec                 C   sV   t tjd d… tdƒƒ}ttj d¡ d¡t 	|¡d�}t
|jdd�}t|dd� d S )	Nr"   r    r^   r_   Tr`   r   rM   )Úzipra   rb   Úranger   r0   r1   r2   r   Úfrom_tuplesr   r6   r   )r8   Ztuplesr9   rd   r:   r:   r;   Útest_plot_multiindex®   s    þz'TestDataFramePlots.test_plot_multiindexc                 C   s^   t jg d¢ddgd�}t jddgddgd�}ttj d	¡ d
dd¡||d�}t|jdd� d S )N))õ   Î±r   )r€   rA   )õ   Î²r    )r�   rQ   )õ   Î³r#   )r‚   rh   )õ   Î´é   )rƒ   é   Zi0Úi1)Únames)Úbaru   Î”)rˆ   u   Î•Zc0Úc1r    r   r"   )é   r    r,   u   Î£rz   )	r   r~   r   r0   r1   r2   Úintegersr   r6   )r8   r.   r-   r9   r:   r:   r;   Útest_plot_multiindex_unicode¸   s    
õÿýz/TestDataFramePlots.test_plot_multiindex_unicoderD   N)rI   rA   c                 C   s>   t dtj d¡ d¡iƒ}t|jjd|d�}t|ddd� d S )	NrS   r    r"   T)r?   rD   rA   ©rA   rA   rB   )r   r0   r1   r2   r   r6   rˆ   r   )r8   rD   r9   rG   r:   r:   r;   Útest_plot_single_column_barÒ   s    z.TestDataFramePlots.test_plot_single_column_barc                 C   sb   t dtj d¡ d¡iƒ}tj ¡ \}}|jjd|d�}t	|ƒdksHJ ‚|j
}||d u s^J ‚d S )NrS   r    r"   T©r?   rd   rA   r   )r   r0   r1   r2   ÚmplÚpyplotr?   r6   rˆ   ÚlenrG   )r8   r9   Ú_rd   rG   Úresultr:   r:   r;   Útest_plot_passed_axÛ   s    z&TestDataFramePlots.test_plot_passed_axz
cols, x, yZABCDEÚAr(   ÚCÚDÚEc              
   C   st   g d¢}t g d¢g d¢tjddtjddgtd�tj|dd	� d
¡tj|ddd� d
¡dœƒ}t|| j	||d� d S )N)Z2008Z2009NZ2011Z2012©rA   r    rQ   r#   rh   r…   rh   rQ   r    r%   z%Y©ÚformatÚi8T)rœ   Úutc©r–   r(   r—   r˜   r™   rR   )
r   r0   ÚarrayÚnanr5   ÚpdÚto_datetimeÚviewr   r6   )r8   ÚcolsrS   rT   Údatesr9   r:   r:   r;   Útest_nullable_int_plotæ   s    ûÿ
z)TestDataFramePlots.test_nullable_int_plotr6   )rZ   rˆ   ÚhistÚpiec                 C   s.   t jg d¢dd�}t|ƒ}tt|j|ƒƒ d S )N©rA   r    rQ   r#   ÚUInt32r%   )r¢   r    r	   r   Úgetattrr6   )r8   r6   ÚarrÚsr:   r:   r;   Útest_integer_array_plot_series  s    z1TestDataFramePlots.test_integer_array_plot_serieszplot, kwargsrZ   rˆ   r¨   r©   rT   ÚscatterrS   rR   Úhexbinc                 C   s<   t jg d¢dd�}t||dœƒ}tt|j|ƒfi |¤Ž d S )Nrª   r«   r%   rR   )r¢   r    r   r   r¬   r6   )r8   r6   rf   r­   r9   r:   r:   r;   Útest_integer_array_plot_df
  s    z-TestDataFramePlots.test_integer_array_plot_dfc                 C   s6   t g d¢g d¢dœƒ}| ¡ }t| ¡ ƒdks2J ‚d S )N©rS   rT   Úz©rA   r    rQ   ©r–   r(   rA   )r   r6   r’   Ú	get_linesrc   r:   r:   r;   Útest_nonnumeric_exclude  s    z*TestDataFramePlots.test_nonnumeric_excludec                 C   s@   t tj d¡ d¡g d¢d�}|jddd�}t|j ¡ dƒ d S )Nr    r^   ©ÚaÚbÚc©r-   rº   r»   rR   )	r   r0   r1   r2   r3   r6   r   rv   rx   rc   r:   r:   r;   Útest_implicit_label!  s
    ÿz&TestDataFramePlots.test_implicit_labelc                 C   sH   t tj d¡ d¡ddgd�}d|j_|jddd� |jjdksDJ ‚d S )	Nr    rJ   rº   r»   r½   ÚNAMEZLABEL)rT   Úlabel)r   r0   r1   r2   r3   r.   Únamer6   r7   r:   r:   r;   Útest_donot_overwrite_index_name(  s    ÿz2TestDataFramePlots.test_donot_overwrite_index_namec                 C   sà   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	|j
d
dd�| d¡d  
¡ ƒ t	|j
d
d�| d¡ 
¡ ƒ t	|j
d
d�|j 
¡ ƒ t	|j
ddd�| d¡j 
¡ ƒ t	|j
dd�| d¡ 
¡ ƒ t	|j
dd�|j 
¡ ƒ d S )Nr    ©rh   r#   r$   r%   r'   rh   r(   r)   r,   r   rA   rR   r–   ©rS   ©rT   )r   r0   r1   r2   r3   r   r4   r5   r   r   r6   Ú	set_indexr(   r7   r:   r:   r;   Útest_plot_xy1  s    ý" zTestDataFramePlots.test_plot_xyc                 C   s¦   t tj d¡ d¡ttdƒtd�tdddd�d	�}t 	d
t
|jƒd
 ¡|_t|jd
dd�| d
¡d  ¡ ƒ t|jd
d�| d
¡ ¡ ƒ t|jd
d�|d
  ¡ ƒ d S )Nr    rÃ   r$   r%   r'   rh   r(   r)   r,   rA   rR   rÄ   rÅ   )r   r0   r1   r2   r3   r   r4   r5   r   Úaranger’   r-   r   r6   rÆ   r7   r:   r:   r;   Útest_plot_xy_int_cols?  s    ý"z(TestDataFramePlots.test_plot_xy_int_colsc                 C   sd   t tj d¡ d¡ttdƒtd�tdddd�d	�}|j	d
dddd�}t
|jdƒ t|d
ddd� d S )Nr    rÃ   r$   r%   r'   rh   r(   r)   r,   rA   ZTest)é   rŠ   )rS   rT   rm   Úfigsizer�   )g      0@g       @)rC   rD   rË   )r   r0   r1   r2   r3   r   r4   r5   r   r6   r   rm   r   rc   r:   r:   r;   Útest_plot_xy_figsize_and_titleK  s    ýz1TestDataFramePlots.test_plot_xy_figsize_and_titlezinput_log, expected_log)TÚlog)ÚsymZsymlogc                 C   sª   t dt d¡it d¡d�}|j|d�}t||d� | ¡ |ksDJ ‚|j|d�}t||d� | ¡ |kslJ ‚|j|d�}t|||d	� | ¡ |ks–J ‚| ¡ |ks¦J ‚d S )
Nrº   rj   r_   ©Úlogy©Úyaxis)Úlogx©rv   ©Úloglog)rv   rÒ   )r   r0   rÈ   r6   r   Z
get_yscaleZ
get_xscale)r8   Z	input_logZexpected_logr9   rd   r:   r:   r;   Útest_logscalesY  s    z!TestDataFramePlots.test_logscalesÚinput_param)rÓ   rÐ   rÖ   c                 C   sÂ   t dt d¡it d¡d�}d|› d�}tjt|d��$ |jf i |di¤Ž W d   ƒ n1 s`0    Y  d|› d	�}tjt	|d��* |jj
f d
di|di¤Ž W d   ƒ n1 s´0    Y  d S )Nrº   rj   r_   z	keyword 'z*' should be bool, None, or 'sym', not 'sm'rU   ÚsmzPiePlot ignores the 'z	' keywordr?   T)r   r0   rÈ   rW   rX   Ú
ValueErrorr6   ÚtmÚassert_produces_warningÚUserWarningr©   )r8   rØ   r9   r\   r:   r:   r;   Útest_invalid_logscalel  s    2z(TestDataFramePlots.test_invalid_logscalec                 C   sl   t tj d¡ d¡ttdƒtd�tdddd�d	�}|j	d
d�}| 
¡ }t|d  ¡ tƒr\J ‚t|dd� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   T)Úx_compatr   é   rM   )r   r0   r1   r2   r3   r   r4   r5   r   r6   r·   Ú
isinstanceÚ	get_xdatar   r   ©r8   r9   rd   Úlinesr:   r:   r;   Útest_xcompaty  s    ýzTestDataFramePlots.test_xcompatc                 C   sr   t tj d¡ d¡ttdƒtd�tdddd�d	�}d
t	j
d< | ¡ }| ¡ }t|d  ¡ tƒrbJ ‚t|dd� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   Tzxaxis.compatr   rà   rM   )r   r0   r1   r2   r3   r   r4   r5   r   r   Úplot_paramsr6   r·   rá   râ   r   r   rã   r:   r:   r;   Útest_xcompat_plot_params„  s    ý
z+TestDataFramePlots.test_xcompat_plot_paramsc                 C   s²   t tj d¡ d¡ttdƒtd�tdddd�d	�}d
t	j
d< | ¡ }| ¡ }t|d  ¡ tƒrbJ ‚d}tjt|d��* tt|d  ¡ ƒtƒs�J ‚W d   ƒ n1 s¤0    Y  d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   Frß   r   zPeriodDtype\[B\] is deprecatedrU   )r   r0   r1   r2   r3   r   r4   r5   r   r   ræ   r6   r·   rá   râ   r   rÛ   rÜ   ÚFutureWarning©r8   r9   rd   rä   r\   r:   r:   r;   Ú!test_xcompat_plot_params_x_compat�  s    ý
z4TestDataFramePlots.test_xcompat_plot_params_x_compatc                 C   s–   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	j
 d
d¡�B | ¡ }| ¡ }t|d  ¡ tƒrhJ ‚t|dd� W d   ƒ n1 sˆ0    Y  d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   rß   Tr   rà   rM   )r   r0   r1   r2   r3   r   r4   r5   r   r   ræ   Zuser6   r·   rá   râ   r   r   rã   r:   r:   r;   Ú(test_xcompat_plot_params_context_managerŸ  s    ýz;TestDataFramePlots.test_xcompat_plot_params_context_managerc                 C   s´   t tj d¡ d¡ttdƒtd�tdddd�d	�}| 	¡ }| 
¡ }t|d
  ¡ tƒrXJ ‚d}tjt|d��* tt|d
  ¡ ƒtƒs†J ‚W d   ƒ n1 sš0    Y  t|d
d� d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   r   zPeriodDtype\[B\] is deprecated rU   rM   )r   r0   r1   r2   r3   r   r4   r5   r   r6   r·   rá   râ   r   rÛ   rÜ   rè   r   ré   r:   r:   r;   Útest_xcompat_plot_period¬  s    ý8z+TestDataFramePlots.test_xcompat_plot_periodc                 C   sP   t tj d¡ d¡ttdddƒtdddƒƒddgd�}| ¡  tjj	d	d
� d S )Nr    )é   r    éÐ  rA   é   rº   r»   ©r.   r-   r   rÅ   )
r   r0   r1   r2   r
   r   r6   r�   r‘   Zaxhliner7   r:   r:   r;   Útest_period_compatº  s    ýz%TestDataFramePlots.test_period_compatÚindex_dtypec                 C   sˆ   t dt d¡itt ddd¡|d�tjd�}| ¡ }| ¡ d }| ¡ }t|d d …df |d d …df tjdd	�}t	j
||jd
d� d S )NrT   rj   éc   rI   r%   )r.   r&   r   rA   )r&   rÁ   F)Zcheck_index_type)r   r0   rÈ   r   Úint64r6   r·   Z
get_xydatar	   rÛ   Zassert_series_equalrT   )r8   rò   r9   rd   rä   Úrsr:   r:   r;   Útest_unsorted_indexÆ  s    ý*z&TestDataFramePlots.test_unsorted_indexr9   ©ç        ç      ð?ç       @ç      @)rù   rø   rû   rú   r_   rø   rù   rû   g      @g      @g      @rú   c                 C   s\   |  ¡ }| ¡ \}}| ¡ }|t |d  ¡ d ¡ks:J ‚|t |d  ¡ d ¡ksXJ ‚d S )Nr   )r6   Úget_xlimr·   r0   ÚnanminÚget_dataÚnanmax©r8   r9   rd   ÚxminÚxmaxrä   r:   r:   r;   Útest_unsorted_index_limsÓ  s
    z+TestDataFramePlots.test_unsorted_index_limsc                 C   sx   t g d¢g d¢dœƒ}|jddd�}| ¡ \}}| ¡ }|t |d  ¡ d ¡ksVJ ‚|t |d  ¡ d ¡kstJ ‚d S )Nr÷   )g     ÀV@g     €V@g     @W@g      W@)rT   r´   r´   rT   rR   r   )r   r6   rü   r·   r0   rý   rþ   rÿ   r   r:   r:   r;   Útest_unsorted_index_lims_x_yä  s    z/TestDataFramePlots.test_unsorted_index_lims_x_yc                 C   s°   t tj d¡ d¡ttjd d… ƒg d¢d� }d}tjt	|d�� |j
jdd	� W d   ƒ n1 sf0    Y  tjt	|d�� |j
jdd
� W d   ƒ n1 s¢0    Y  d S )Nr    ©r„   r#   r„   ©rS   rT   r´   Úfourrð   z+Log-y scales are not supported in area plotrU   TrÏ   rÕ   )r   r0   r1   r2   r4   ra   rb   rW   rX   rÚ   r6   Úarear[   r:   r:   r;   Útest_negative_logì  s    ý,z$TestDataFramePlots.test_negative_logc                 C   sZ   t  t|d  ¡ d ƒ¡}t||ƒD ]0\}}|| ¡ d 7 }| ¡ d }t ||¡ q$d S )Nr   rA   )r0   Zzerosr’   rþ   r|   rÛ   Úassert_numpy_array_equal)r8   Znormal_linesZstacked_linesÚbaseÚnlÚslÚsyr:   r:   r;   Ú_compare_stacked_y_coodø  s
    z*TestDataFramePlots._compare_stacked_y_coodÚkindr  ÚmultrA   rI   c                 C   sV   |t tj d¡ d¡g d¢d� }t|j|dd�}t|j|dd�}|  |j|j¡ d S )Nr    r  ©ÚwrS   rT   r´   r½   F©r  ÚstackedT©r   r0   r1   r2   r   r6   r  rä   )r8   r  r  r9   Úax1Úax2r:   r:   r;   Útest_line_area_stackedÿ  s    ÿz)TestDataFramePlots.test_line_area_stackedc                 C   s²   t tj d¡ d¡tj d¡ d¡tj d¡ d¡ tj d¡ d¡ dœƒ}t|j|dd�}t|j|dd�}|  |jd d… |jd d… ¡ |  |jdd … |jdd … ¡ d S )Nr    r„   r  Fr  Tr  )r8   r  Zsep_dfr  r  r:   r:   r;   Útest_line_area_stacked_sep_df
  s    üÿ z0TestDataFramePlots.test_line_area_stacked_sep_dfc                 C   s~   t tj d¡ d¡ttjd d… ƒg d¢d�}t|j	dd� d}t
jt|d	�� |j	d
d� W d   ƒ n1 sp0    Y  d S )Nr    r  r„   r  rð   F©r  z„When stacked is True, each column must be either all positive or all negative. Column 'w' contains both positive and negative valuesrU   T)r   r0   r1   r2   r3   r4   ra   rb   r   r6   rW   rX   rÚ   )r8   Zmixed_dfr\   r:   r:   r;   Útest_line_area_stacked_mixed  s    ýÿz/TestDataFramePlots.test_line_area_stacked_mixedc                 C   sD   t tj d¡ d¡g d¢d�}| |jd ¡}t|j|ddd� d S )Nr    r  r  r½   rA   T)r  rÓ   r  )r   r0   r1   r2   rÆ   r.   r   r6   )r8   r  r9   Zdf2r:   r:   r;   Ú#test_line_area_stacked_positive_idx*  s
    ÿz6TestDataFramePlots.test_line_area_stacked_positive_idxÚidxr#   z	2023-01-1)r+   r*   c           	      C   sÜ   ddt jdg}dt jddg}t||dœ|d�}t|jƒ}|jd  ¡ }|jd  ¡ }t jg d¢t jd�}t	 
t  |jd¡|¡ t jg d	¢t jd�}t	 
t  |jd¡|¡ t	 
|jt  g d
¢¡¡ t	 
|jt  g d¢¡¡ d S )NrA   r    rQ   ©rº   r»   r_   r   rµ   r%   )rQ   r    rA   )FFTF)FTFF)r0   r¡   r   r   r6   rä   Ú	get_ydatar    Úfloat64rÛ   r
  ÚdeleteÚdataÚmask)	r8   r  Úvalues1Úvalues2r9   rd   Zmasked1Zmasked2Úexpr:   r:   r;   Útest_line_area_nan_df4  s    
z(TestDataFramePlots.test_line_area_nan_dfc                 C   s˜   ddt jdg}dt jddg}t||dœ|d�}t jg d¢t jd�}t jg d¢t jd�}t|jd	d
�}t |j	d  
¡ |¡ t |j	d  
¡ || ¡ d S )NrA   r    rQ   r  r_   ©rA   r    r   rQ   r%   ©rQ   r   r    rA   Tr  r   )r0   r¡   r   r    r!  r   r6   rÛ   r
  rä   r   )r8   r  r%  r&  r9   Ú	expected1Ú	expected2rd   r:   r:   r;   Útest_line_area_nan_df_stackedI  s    z0TestDataFramePlots.test_line_area_nan_df_stackedr  Fc           	      C   sö   ddt jdg}dt jddg}t||dœ|d�}t jg d¢t jd�}t jg d¢t jd�}t|jjfi |¤Ž}t 	|j
d	  ¡ |¡ |rœt 	|j
d  ¡ |¡ nt 	|j
d  ¡ || ¡ t|jjd
d�}t 	|j
d	  ¡ |¡ t 	|j
d  ¡ |¡ d S )NrA   r    rQ   r  r_   r)  r%   r*  r   Fr  )r0   r¡   r   r    r!  r   r6   r  rÛ   r
  rä   r   )	r8   r  rf   r%  r&  r9   r+  r,  rd   r:   r:   r;   Ú"test_line_area_nan_df_stacked_areaX  s    z5TestDataFramePlots.test_line_area_nan_df_stacked_areaÚsecondary_yc                 C   s~   t tj d¡ d¡g d¢d�}|jf i |¤Ž}| ¡ \}}| ¡ }||d  ¡ d d ks^J ‚||d  ¡ d d kszJ ‚d S )Nr    ©r„   rQ   r³   r½   r   rI   )r   r0   r1   r2   r6   rü   r·   rþ   )r8   rf   r9   rd   r  r  rä   r:   r:   r;   Útest_line_limo  s    z TestDataFramePlots.test_line_limc                 C   s°   t tj d¡ d¡g d¢d�}|jddd�}t|ddd	� |D ]l}t|d
ƒsPJ ‚t|dƒr^J ‚| ¡ \}}| ¡ }||d  	¡ d d ksŽJ ‚||d  	¡ d d ks>J ‚q>d S )Nr    r0  r³   r½   T)r/  r?   rQ   rq   rB   Zleft_axÚright_axr   rI   )
r   r0   r1   r2   r6   r   Úhasattrrü   r·   rþ   )r8   r9   rG   rd   r  r  rä   r:   r:   r;   Útest_line_lim_subplotsx  s    z)TestDataFramePlots.test_line_lim_subplotszX2020-12-01 this has been failing periodically on the ymin==0 assertion for a week or so.)ÚstrictrP   c           
      C   sÄ   t tj d¡ d¡g d¢d�}| }t|jj|d�}| ¡ \}}| ¡ \}}| 	¡ }	||	d  
¡ d d kspJ ‚||	d  
¡ d d ksŒJ ‚|dks˜J ‚t|jj|d�}| ¡ \}}|dksÀJ ‚d S )Nr    r  r  r½   r  r   rI   )r   r0   r1   r2   r   r6   r  rü   Úget_ylimr·   rþ   )
r8   r  r9   Zneg_dfrd   r  r  ZyminZymaxrä   r:   r:   r;   Útest_area_lim„  s    ÿz TestDataFramePlots.test_area_limc                 C   s€   t tj d¡ d¡ddgd�}tjjdddd�\}\}}|j|d	d
� |j|d	d
� t|ƒ 	||¡shJ ‚t|ƒ 	||¡s|J ‚d S )Nr    ©r#   r    rS   rT   r½   rA   T)Úshareyr  )rd   r  )
r   r0   r1   r2   r�   r‘   r?   r6   r   Zjoined)r8   r9   Úfigr  r  r:   r:   r;   Útest_area_sharey_dont_overwrite�  s    z2TestDataFramePlots.test_area_sharey_dont_overwritec                 C   sF   t tj d¡ d¡ƒ}|jj|dd�}|jD ]}| ¡ dks,J ‚q,d S )Nr    ©rh   rh   )r  Ú	linewidth)	r   r0   r1   r2   r3   r6   rˆ   ÚpatchesÚget_linewidth)r8   r  r9   rd   Úrr:   r:   r;   Útest_bar_linewidth¨  s    
z%TestDataFramePlots.test_bar_linewidthc                 C   s^   t tj d¡ d¡ƒ}|jjddd�}t|ddd� |D ] }|jD ]}| 	¡ dksBJ ‚qBq8d S )Nr    r<  T)r=  r?   rh   )rh   rA   rB   )
r   r0   r1   r2   r3   r6   rˆ   r   r>  r?  )r8   r9   rG   rd   r@  r:   r:   r;   Útest_bar_linewidth_subplots°  s    
z.TestDataFramePlots.test_bar_linewidth_subplotsz	meth, dim)rˆ   Ú	get_width)ÚbarhÚ
get_heightc                 C   sv   t tj d¡ d¡ƒ}d}t|j|ƒ||d�}|jD ]<}|s\t||ƒƒ |t|j	ƒ kspJ ‚q4t||ƒƒ |ks4J ‚q4d S )Nr    r<  çÍÌÌÌÌÌì?)r  Úwidth)
r   r0   r1   r2   r3   r¬   r6   r>  r’   r-   )r8   ÚmethÚdimr  r9   rG  rd   r@  r:   r:   r;   Útest_bar_barwidth¹  s    
 z$TestDataFramePlots.test_bar_barwidthc                 C   s\   t tj d¡ d¡ƒ}d}t|j|ƒ|dd�}|D ]$}|jD ]}t||ƒƒ |ks<J ‚q<q2d S )Nr    r<  rF  T)rG  r?   )r   r0   r1   r2   r3   r¬   r6   r>  )r8   rH  rI  r9   rG  rG   rd   r@  r:   r:   r;   Útest_barh_barwidth_subplotsÉ  s    
z.TestDataFramePlots.test_barh_barwidth_subplotsc                 C   sˆ   t tj d¡ d¡ƒ}|jjddd�}dd„ |jD ƒ}|dgd ksHJ ‚|jjd	g d
¢d�}dd„ |jd d… D ƒ}|g d
¢ks„J ‚d S )Nr    r<  FrA   )r  Úbottomc                 S   s   g | ]}|  ¡ ‘qS r:   ©Zget_y©Ú.0Úpr:   r:   r;   Ú
<listcomp>Ù  ó    zBTestDataFramePlots.test_bar_bottom_left_bottom.<locals>.<listcomp>é   T)rI   éþÿÿÿéýÿÿÿéüÿÿÿéûÿÿÿc                 S   s   g | ]}|  ¡ ‘qS r:   rM  rN  r:   r:   r;   rQ  Ý  rR  rh   )r   r0   r1   r2   r6   rˆ   r>  ©r8   r9   rd   r”   r:   r:   r;   Útest_bar_bottom_left_bottomÖ  s    z.TestDataFramePlots.test_bar_bottom_left_bottomc                 C   s’   t tj d¡ d¡ƒ}|jjdt g d¢¡d�}dd„ |jD ƒ}|dgd	 ksRJ ‚|jjd
g d¢d�}dd„ |jd d… D ƒ}|g d¢ksŽJ ‚d S )Nr    r<  F©rA   rA   rA   rA   rA   )r  Úleftc                 S   s   g | ]}|  ¡ ‘qS r:   ©Úget_xrN  r:   r:   r;   rQ  ã  rR  z@TestDataFramePlots.test_bar_bottom_left_left.<locals>.<listcomp>rA   rS  Trš   c                 S   s   g | ]}|  ¡ ‘qS r:   r\  rN  r:   r:   r;   rQ  ç  rR  rh   )r   r0   r1   r2   r6   rD  r    r>  rX  r:   r:   r;   Útest_bar_bottom_left_leftà  s    z,TestDataFramePlots.test_bar_bottom_left_leftc                 C   sœ   t tj d¡ d¡ƒ}|jjddd�}|D ]&}dd„ |jD ƒ}|dgd ks*J ‚q*|jjdt g d	¢¡d
�}|D ]&}dd„ |jD ƒ}|dgd kspJ ‚qpd S )Nr    r<  TrI   )r?   rL  c                 S   s   g | ]}|  ¡ ‘qS r:   rM  rN  r:   r:   r;   rQ  î  rR  zDTestDataFramePlots.test_bar_bottom_left_subplots.<locals>.<listcomp>rh   rZ  )r?   r[  c                 S   s   g | ]}|  ¡ ‘qS r:   r\  rN  r:   r:   r;   rQ  ó  rR  rA   )	r   r0   r1   r2   r6   rˆ   r>  rD  r    )r8   r9   rG   rd   r”   r:   r:   r;   Útest_bar_bottom_left_subplotsê  s    z0TestDataFramePlots.test_bar_bottom_left_subplotsc                 C   sR   t dtjdgg d¢g d¢dœƒ}|j ¡ }g d¢}dd„ |jD ƒ}||ksNJ ‚d S )	Nr"   é   ©rh   r"   r`  rµ   ©r–   r(   r—   ©	r"   r   r`  rh   r"   r`  rA   r    rQ   c                 S   s   g | ]}|  ¡ ‘qS r:   ©rE  rN  r:   r:   r;   rQ  ú  rR  z3TestDataFramePlots.test_bar_nan.<locals>.<listcomp>©r   r0   r¡   r6   rˆ   r>  ©r8   r9   rd   Úexpectedr”   r:   r:   r;   Útest_bar_nanö  s
     
zTestDataFramePlots.test_bar_nanc                 C   sz   t dtjdgg d¢g d¢dœƒ}|jjdd�}g d¢}d	d
„ |jD ƒ}||ksRJ ‚dd
„ |jD ƒ}g d¢}||ksvJ ‚d S )Nr"   r`  ra  rµ   rb  Tr  rc  c                 S   s   g | ]}|  ¡ ‘qS r:   rd  rN  r:   r:   r;   rQ    rR  z;TestDataFramePlots.test_bar_nan_stacked.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r:   rM  rN  r:   r:   r;   rQ    rR  )	rø   rø   rø   ç      $@rø   g      4@g      .@ri  g      D@re  rf  r:   r:   r;   Útest_bar_nan_stackedý  s     z'TestDataFramePlots.test_bar_nan_stackedc                 C   sö   t tj d¡ d¡|tdƒƒ|tdƒƒd�}|j ¡ }|j 	¡ }t
 |t g d¢¡¡ | ¡ dksfJ ‚|jd  ¡ d	ks|J ‚|jd
  ¡ dks’J ‚|jjdd�}t
 |t g d¢¡¡ | ¡ dksÆJ ‚|jd  ¡ d	ksÜJ ‚|jd
  ¡ dksòJ ‚d S )Nr    )r„   rh   ZABCDEFZabcderð   )r   rA   r    rQ   r#   rh   )g      à¿g      @r   g      Ð¿rI   gš™™™™™@Tr  g      @)r   r0   r1   r2   r3   r4   r6   rˆ   rv   Úget_ticklocsrÛ   r
  r    rü   r>  r]  )r8   r  r9   rd   Zticksr:   r:   r;   Útest_bar_categorical  s     

ý

z'TestDataFramePlots.test_bar_categoricalzx, y©rA   r    c                 C   sD   t tj d¡ d¡ttjd d… ƒg d¢d�}t|j	j
||d� d S )Nr    r  r„   r  rð   rR   )r   r0   r1   r2   r3   r4   ra   rb   r   r6   r°   ©r8   rS   rT   r9   r:   r:   r;   Útest_plot_scatter  s    ýz$TestDataFramePlots.test_plot_scatterc                 C   s¾   t tj d¡ d¡ttjd d… ƒg d¢d�}t 	d¡}t
jt|d�� |jjdd	� W d   ƒ n1 sj0    Y  t 	d
¡}t
jt|d�� |jjdd� W d   ƒ n1 s°0    Y  d S )Nr    r  r„   r  rð   z5scatter() missing 1 required positional argument: 'y'rU   rS   rÄ   z5scatter() missing 1 required positional argument: 'x'rT   rÅ   )r   r0   r1   r2   r3   r4   ra   rb   ÚreÚescaperW   rX   Ú	TypeErrorr6   r°   r[   r:   r:   r;   Útest_plot_scatter_error)  s    ý
,
z*TestDataFramePlots.test_plot_scatter_errorc                 C   sR   t tj d¡ d¡ttjd d… ƒg d¢d�}|jdddd	d
�}t	|ddd� d S )Nr    r  r„   r  rð   rS   rT   r°   T)rS   rT   r  r?   rA   r�   rB   )
r   r0   r1   r2   r3   r4   ra   rb   r6   r   rF   r:   r:   r;   Útest_plot_scatter_shape6  s    ýz*TestDataFramePlots.test_plot_scatter_shapec                 C   sv   t tj d¡ d¡dgd�}tdddd�j|d< d	}tjt	|d
��  |j
dddd� W d   ƒ n1 sh0    Y  d S )Nr    r"   rº   r½   z
2014-01-01Úh)Ústartr+   r*   Zdtimez9must be a string or a (real )?number, not 'datetime.time'rU   r°   )r  rS   rT   )r   r0   r1   r2   r3   r   ÚtimerW   rX   rr  r6   r[   r:   r:   r;   Ú&test_raise_error_on_datetime_time_data@  s
    z9TestDataFramePlots.test_raise_error_on_datetime_time_data©r¦   Úvals©r   rA   c                 C   sT   t tdddƒddd�}tj d¡ ddt|ƒ¡}t||dœƒ}t|j	j
||d	� d S )
Niã  rA   é   ÚW)rv  r*   r+   r    r   ry  rR   )r   r   r0   r1   r2   Únormalr’   r   r   r6   r°   )r8   rS   rT   r¦   rz  r9   r:   r:   r;   Útest_scatterplot_datetime_dataI  s    z1TestDataFramePlots.test_scatterplot_datetime_dataÚinfer_stringZpyarrow)Zmarksr  Úb_col©r    rQ   r#   r¹   c                 C   sR   t d|ƒ�4 tg d¢|dœƒ}t|jj||d� W d   ƒ n1 sD0    Y  d S )Nzfuture.infer_stringrb  r  rR   )r   r   r   r6   r°   )r8   r�  rS   rT   r€  r9   r:   r:   r;   Útest_scatterplot_object_dataR  s    z/TestDataFramePlots.test_scatterplot_object_dataÚorderedÚ
categories)ÚsetosaÚ
versicolorÚ	virginica)r‡  rˆ  r†  c                 C   sà   t ddgddgddgddgddggd	d
gd�}tjg d¢||d�|d< |jjdddd�}|j\}|j}t g d¢¡}| 	¡ }t
 ||¡ t g d¢¡}	|j}
t
 |
|	¡ |}dd„ |j ¡ D ƒ}tdd„ t||ƒD ƒƒsÜJ ‚d S )Ngffffff@g      @gš™™™™™@rû   g      @gš™™™™™	@gš™™™™™@gš™™™™™@ÚlengthrG  r½   )r†  r†  rˆ  rˆ  r‡  )r„  r…  Zspeciesr   rA   ©rS   rT   r¼   )ç      à?g      ø?g      @r÷   c                 S   s   g | ]}|  ¡ ‘qS r:   ©Úget_text)rO  Úir:   r:   r;   rQ  z  rR  zLTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<listcomp>c                 s   s   | ]\}}||kV  qd S ©Nr:   )rO  rŽ  Újr:   r:   r;   Ú	<genexpr>{  rR  zKTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<genexpr>)r   r¢   ÚCategoricalr6   r°   ÚcollectionsÚcolorbarr0   r    Z	get_ticksrÛ   r
  Z_boundariesrd   Zget_ymajorticklabelsÚallr|   )r8   r„  r…  r9   rd   Zcolorbar_collectionr”  Zexpected_ticksZresult_ticksZexpected_boundariesZresult_boundariesZexpected_yticklabelsZresult_yticklabelsr:   r:   r;   Ú%test_scatterplot_color_by_categorical^  s*     þý
z8TestDataFramePlots.test_scatterplot_color_by_categorical)rR   )rT   rS   )rT   rT   c                 C   s2   t g d¢t g d¢¡dœƒ}t|jj||d� d S )Nrª   )rº   r»   rº   r¼   rR   )r   r¢   r’  r   r6   r°   rn  r:   r:   r;   Ú'test_plot_scatter_with_categorical_data}  s    z:TestDataFramePlots.test_plot_scatter_with_categorical_datazx, y, cr³   )r   rA   r    c                 C   sz   t tj d¡jdddd�ttjd d… ƒg d¢d�}|jj	|||d	�}|j
d jjd
ks\J ‚|j
d jj ¡ dksvJ ‚d S )Nr    r   rj   r  ©ÚlowÚhighÚsizer„   r  rð   rŠ  ZGreysr´   )r   r0   r1   r2   r‹   r4   ra   rb   r6   r°   r“  ÚcmaprÁ   r”  rd   Ú
get_ylabel)r8   rS   rT   r¼   r9   rd   r:   r:   r;   Útest_plot_scatter_with_c„  s    ýz+TestDataFramePlots.test_plot_scatter_with_cc                 C   sÄ   t tj d¡jdddd�ttjd d… ƒg d¢d�}d	}|jj	d
dd|d�}|j
d jj|ksbJ ‚|jj	d
dddd�}|j
d jd u sŠJ ‚|jj	dddd�}|j
d jd u s°J ‚t|j
dgd� d S )Nr    r   rj   r  r˜  r„   r  rð   Ú	cubehelixrS   rT   r´   )rS   rT   r¼   ÚcolormapF)rS   rT   r¼   r”  rA   ÚredrŠ  r@  ©Z
facecolors)r   r0   r1   r2   r‹   r4   ra   rb   r6   r°   r“  rœ  rÁ   r”  r   )r8   r9   Úcmrd   r:   r:   r;   Útest_plot_scatter_with_c_props’  s    ýz1TestDataFramePlots.test_plot_scatter_with_c_propsc                 C   s‚   t ddgddgdœƒ}g d¢}g d¢}t ||g¡}|jjdd	|d
�}t |jd  ¡ |¡ t ddg¡}|jjdd	|dd� d S )NrA   r    rQ   r#   r¶   )rù   rø   rø   rù   )rø   rù   rø   rù   r–   r(   rŠ  r   rø   rù   Zspring)rS   rT   r¼   rœ  )	r   r0   r    r6   r°   rÛ   r
  r“  Zget_facecolor)r8   r9   Zred_rgbaZ
green_rgbaZ
rgba_arrayrd   Zfloat_arrayr:   r:   r;   Útest_plot_scatter_with_c_array¥  s    z1TestDataFramePlots.test_plot_scatter_with_c_arrayc                 C   sV   t tj d¡ d¡d g d¢d�}|jjdddd	�}tj|d j|j	d
  
¡ d� d S )Nr    r^   rj   r¹   r½   rº   r»   r¼   )rS   rT   r®   r   )Úright)r   r0   r1   r2   r6   r°   rÛ   r
  Úvaluesr“  Z	get_sizesrc   r:   r:   r;   Útest_plot_scatter_with_s¼  s
    ÿz+TestDataFramePlots.test_plot_scatter_with_sc                 C   sX   t tj d¡ d¡d g d¢d�}tj ¡ }|jjddd|d	�}|j	d
 j
|u sTJ ‚d S )Nr    r^   rj   r¹   r½   rº   r»   r¼   )rS   rT   r¼   Únormr   )r   r0   r1   r2   r�   ÚcolorsZLogNormr6   r°   r“  r©  )r8   r9   r©  rd   r:   r:   r;   Útest_plot_scatter_with_normÅ  s    ÿ
z.TestDataFramePlots.test_plot_scatter_with_normc                 C   s„   t tj d¡ d¡d g d¢d�}|jjdddd	�}|jd
 j}|j 	¡ |j 
¡ f}tjj|Ž }|jD ]}||ƒ||ƒksfJ ‚qfd S )Nr    r^   rj   r¹   r½   rº   r»   r¼   rŠ  r   )r   r0   r1   r2   r6   r°   r“  r©  r¼   ÚminÚmaxr�   rª  Z	Normalize)r8   r9   rd   Z	plot_normZcolor_min_maxZdefault_normÚvaluer:   r:   r;   Útest_plot_scatter_without_normÎ  s    ÿ
z1TestDataFramePlots.test_plot_scatter_without_normÚlegendr=   c                 C   sF   t tj d¡ d¡ttjd d… ƒg d¢d�}t|j	j
fi |¤Ž d S )Nr    r  r„   ©ÚoneÚtwoÚthreer  rð   )r   r0   r1   r2   r3   r4   ra   rb   r   r6   rˆ   ro   r:   r:   r;   Útest_plot_barÚ  s    ýz TestDataFramePlots.test_plot_barc                 C   s>   t tj d¡ d¡ttjd d… ƒtdƒd�}t	|j
jƒ d S )Nr    )r"   é   r"   r¶  rð   )r   r0   r1   r2   r3   r4   ra   rb   r}   r   r6   rˆ   r7   r:   r:   r;   Útest_plot_bar_int_colí  s    ýz(TestDataFramePlots.test_plot_bar_int_colc                 C   sR   t ddgddgdœƒ}t|jjƒ}t|dd� |jjddd�}t|dddd	� d S )
Nr   rA   r  éZ   rM   é#   r"   ©ÚrotÚfontsize©rN   Ú
xlabelsizeÚ
ylabelsize)r   r   r6   rˆ   r   rc   r:   r:   r;   Útest_plot_bar_ticksö  s
    z&TestDataFramePlots.test_plot_bar_ticksc                 C   sR   t ddgddgdœƒ}t|jjƒ}t|dd� |jjddd�}t|dddd� d S )	Nr   rA   r  )Úyroté7   é   rº  )rÁ  r¿  r¾  )r   r   r6   rD  r   rc   r:   r:   r;   Útest_plot_barh_ticksÿ  s
    z'TestDataFramePlots.test_plot_barh_ticksc                 C   sv   |}|  ¡ j}dd„ |D ƒ}t|jjƒ}t| ¡ |ƒ t |j	 
¡ t dt|ƒd ¡¡ t|jƒdt|ƒ ksrJ ‚d S )Nc                 S   s   g | ]}t |ƒ‘qS r:   r   ©rO  r¼   r:   r:   r;   rQ    rR  z3TestDataFramePlots.test_boxplot.<locals>.<listcomp>rA   r…   )Ú_get_numeric_datar-   r   r6   Úboxr   rw   rÛ   r
  rv   rk  r0   rÈ   r’   rä   )r8   Úhist_dfr9   Únumeric_colsÚlabelsrd   r:   r:   r;   Útest_boxplot  s    
ÿzTestDataFramePlots.test_boxplotc                 C   s8   |}|d }|j jdd�}t|ddd� t|j jƒ d S )NÚheighté(   ©r»  r   ©rN   rÁ  )r6   rÇ  r   r   )r8   rÈ  r9   ÚseriesrG   r:   r:   r;   Útest_boxplot_series  s
    z&TestDataFramePlots.test_boxplot_seriesc                 C   sv   |}t  g d¢¡}|jj|d�}| ¡ j}dd„ |D ƒ}t| ¡ |ƒ t 	|j
 ¡ |¡ t|jƒdt|ƒ ksrJ ‚d S )N)rA   r„   r…   )Ú	positionsc                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  !  rR  zDTestDataFramePlots.test_boxplot_series_positions.<locals>.<listcomp>r…   )r0   r    r6   rÇ  rÆ  r-   r   rw   rÛ   r
  rv   rk  r’   rä   )r8   rÈ  r9   rÒ  rd   rÉ  rÊ  r:   r:   r;   Útest_boxplot_series_positions  s    
z0TestDataFramePlots.test_boxplot_series_positionsz!ignore:set_ticklabels:UserWarningú3.10z#Fails starting with matplotlib 3.10c                 C   s’   |}|  ¡ j}dd„ |D ƒ}ttjƒtdƒk r6ddinddi}|jjf dd	d
œ|¤Ž}t|ddd	d� t| 	¡ |ƒ t
|jƒdt
|ƒ ksŽJ ‚d S )Nc                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  .  rR  z<TestDataFramePlots.test_boxplot_vertical.<locals>.<listcomp>rÔ  ÚvertFÚorientationÚ
horizontalé2   rŠ   rº  r   ©rN   rÁ  r¿  r…   )rÆ  r-   r   r�   Ú__version__r6   rÇ  r   r   Úget_yticklabelsr’   rä   )r8   rÈ  r9   rÉ  rÊ  rf   rd   r:   r:   r;   Útest_boxplot_vertical&  s    
ÿ
ýz(TestDataFramePlots.test_boxplot_verticalzignore::UserWarningz+Fails starting with matplotlib version 3.10c           	      C   s®   |}|  ¡ j}dd„ |D ƒ}ttjƒtdƒk r6ddinddi}t|jjfdddd	œ|¤Ž}t|d
dd� t	|dd� t
||ƒD ]*\}}t| ¡ |gƒ t|jƒdks~J ‚q~d S )Nc                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  C  rR  zETestDataFramePlots.test_boxplot_vertical_subplots.<locals>.<listcomp>rÔ  rÕ  FrÖ  r×  T)r>   r?   rÓ   rQ   )rA   rQ   rB   rÍ   rÔ   r…   )rÆ  r-   r   r�   rÚ  r   r6   rÇ  r   r   r|   r   rÛ  r’   rä   )	r8   rÈ  r9   rÉ  rÊ  rf   rG   rd   rÀ   r:   r:   r;   Útest_boxplot_vertical_subplots;  s&    
ÿ
ýÿÿÿz1TestDataFramePlots.test_boxplot_vertical_subplotsc                 C   s    |}|  ¡ j}dd„ |D ƒ}t g d¢¡}ttjƒtdƒk rDddinddi}|jjf d	|i|¤Ž}t	| 
¡ |ƒ t |j ¡ |¡ t|jƒd
t|ƒ ksœJ ‚d S )Nc                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  Z  rR  zFTestDataFramePlots.test_boxplot_vertical_positions.<locals>.<listcomp>)rQ   r    rŠ   rÔ  rÕ  FrÖ  r×  rÒ  r…   )rÆ  r-   r0   r    r   r�   rÚ  r6   rÇ  r   rÛ  rÛ   r
  rÒ   rk  r’   rä   )r8   rÈ  r9   rÉ  rÊ  rÒ  rf   rd   r:   r:   r;   Útest_boxplot_vertical_positionsR  s    
ÿ
ýz2TestDataFramePlots.test_boxplot_vertical_positionsc                 C   sr   t tj d¡ d¡ttjd d… ƒg d¢d�}d}tj	t
|d�� |jjdd	� W d   ƒ n1 sd0    Y  d S )
Nr    r  r„   r±  rð   z2return_type must be {None, 'axes', 'dict', 'both'}rU   Z
not_a_type©Úreturn_type)r   r0   r1   r2   r3   r4   ra   rb   rW   rX   rÚ   r6   rÇ  r[   r:   r:   r;   Ú test_boxplot_return_type_invalidf  s    ýz3TestDataFramePlots.test_boxplot_return_type_invalidrà  )ÚdictrG   Zbothc                 C   sJ   t tj d¡ d¡ttjd d… ƒg d¢d�}|jj	|d�}t
||ƒ d S )Nr    r  r„   r±  rð   rß  )r   r0   r1   r2   r3   r4   ra   rb   r6   rÇ  r   )r8   rà  r9   r”   r:   r:   r;   Ú%test_boxplot_return_type_invalid_typep  s    ýz8TestDataFramePlots.test_boxplot_return_type_invalid_typec                 C   sZ   t  d¡ ttj d¡ d¡ƒ}t|jdd�}dd„ |j	D ƒ}t
||d� t|d	d
� d S )NÚscipyr    ©rj   r#   Úkde©r  c                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  ~  rR  z2TestDataFramePlots.test_kde_df.<locals>.<listcomp>©rÊ  r   rM   )rW   Úimportorskipr   r0   r1   r2   r3   r   r6   r-   r   r   )r8   r9   rd   rg  r:   r:   r;   Útest_kde_dfz  s    
zTestDataFramePlots.test_kde_dfc                 C   sD   t  d¡ ttj d¡ d¡ƒ}|jdddd�}t|dddd� d S )	Nrä  r    r!   ræ  r`  rh   )r  r»  r¼  r½  )	rW   ré  r   r0   r1   r2   r3   r6   r   rc   r:   r:   r;   Útest_kde_df_rot‚  s    
z"TestDataFramePlots.test_kde_df_rotc                 C   sD   t  d¡ ttj d¡ d¡ƒ}t|jdddd�}t	|ddd	� d S )
Nrä  r    r!   Træ  )r>   r  r?   r#   r@   rB   )
rW   ré  r   r0   r1   r2   r3   r   r6   r   rF   r:   r:   r;   Útest_kde_df_subplotsˆ  s    
üz'TestDataFramePlots.test_kde_df_subplotsc                 C   s@   t  d¡ ttj d¡ d¡ƒ}|jdddd�}t|dd� d S )	Nrä  r    r!   ræ  T)r  rÐ   r?   rÍ   rÑ   )	rW   ré  r   r0   r1   r2   r3   r6   r   rF   r:   r:   r;   Útest_kde_df_logy“  s    
z#TestDataFramePlots.test_kde_df_logyc                 C   s@   t  d¡ ttj d¡jdd�ƒ}tj|jd< t	|j
dd� d S )Nrä  r    rå  ©r›  ©r   r   ræ  rç  )rW   ré  r   r0   r1   r2   Úuniformr¡   Úlocr   r6   r7   r:   r:   r;   Útest_kde_missing_vals™  s    
z(TestDataFramePlots.test_kde_missing_valsc                 C   sp   t tj d¡ d¡ƒ}t|jjƒ}dd„ |jD ƒ}t	||d� t|jjdddd�}t
|dd	d
� t|dd� d S )Nr    rå  c                 S   s   g | ]}t |ƒ‘qS r:   r   rÅ  r:   r:   r;   rQ  £  rR  z3TestDataFramePlots.test_hist_df.<locals>.<listcomp>rè  T)r>   r?   rÐ   r#   r@   rB   rÍ   rÑ   )r   r0   r1   r2   r3   r   r6   r¨   r-   r   r   r   )r8   r9   rd   rg  rG   r:   r:   r;   Útest_hist_dfŸ  s    üzTestDataFramePlots.test_hist_dfc                 C   s6   t tj d¡ d¡ƒ}|jjdd�}t|ddd� d S )Nr    r"   rÍ  rÎ  r   rÏ  )r	   r0   r1   r2   r6   r¨   r   )r8   rÐ  rG   r:   r:   r;   Útest_hist_df_series¯  s    z&TestDataFramePlots.test_hist_df_seriesc                    sb   ddl m‰  ttj d¡ d¡ƒ}|jjdddd�}‡ fdd	„| ¡ D ƒ}t	 
|d
  ¡ d¡ d S )Nr   ©Ú	Rectangler    r"   Tr#   )Ú
cumulativeÚbinsÚdensityc                    s   g | ]}t |ˆ ƒr|‘qS r:   ©rá   ©rO  rS   rõ  r:   r;   rQ  º  rR  zMTestDataFramePlots.test_hist_df_series_cumulative_density.<locals>.<listcomp>rI   rù   ©Zmatplotlib.patchesrö  r	   r0   r1   r2   r6   r¨   Zget_childrenrÛ   Úassert_almost_equalrE  ©r8   rÐ  rd   Zrectsr:   rõ  r;   Ú&test_hist_df_series_cumulative_density´  s
    z9TestDataFramePlots.test_hist_df_series_cumulative_densityc                    s`   ddl m‰  ttj d¡ d¡ƒ}|jjddd�}‡ fdd	„| ¡ D ƒ}t	 
|d
  ¡ d¡ d S )Nr   rõ  r    r"   Tr#   )r÷  rø  c                    s   g | ]}t |ˆ ƒr|‘qS r:   rú  rû  rõ  r:   r;   rQ  Â  rR  zETestDataFramePlots.test_hist_df_series_cumulative.<locals>.<listcomp>rT  ri  rü  rþ  r:   rõ  r;   Útest_hist_df_series_cumulative½  s
    z1TestDataFramePlots.test_hist_df_series_cumulativec                 C   s<   t tj d¡ d¡ƒ}|jjdddd�}t|dddd� d S )	Nr    r!   rØ  rŠ   r×  )r»  r¼  rÖ  r   rÙ  )r   r0   r1   r2   r3   r6   r¨   r   rF   r:   r:   r;   Útest_hist_df_orientationÆ  s    z+TestDataFramePlots.test_hist_df_orientationÚweightsçš™™™™™¹?)rj   )Úshape)rj   r    c                 C   sr   t ttddgtj d¡ d¡ƒƒƒ}t|jd|d�}t|jdd�}dd	„ |j	D ƒ}d
d	„ |j	D ƒ}t
 ||¡ d S )Nr–   r(   r    ©r    rj   r¨   )r  r  rç  c                 S   s   g | ]}|  ¡ ‘qS r:   rd  ©rO  Úpatchr:   r:   r;   rQ  Ù  rR  z8TestDataFramePlots.test_hist_weights.<locals>.<listcomp>c                 S   s   g | ]}d |  ¡  ‘qS )r  rd  r  r:   r:   r;   rQ  Ý  rR  )r   râ  r|   r0   r1   r2   r3   r   r6   r>  rÛ   rý  )r8   r  r9   r  r  Zpatch_height_with_weightsZexpected_patch_heightr:   r:   r;   Útest_hist_weightsÌ  s    ÿz$TestDataFramePlots.test_hist_weightsc           
      C   s´   t  dd„ |D ƒ¡}t  dd„ |D ƒ¡}t  dd„ |D ƒ¡}t  dd„ |D ƒ¡}	|d urhtj||dd� |d ur€tj||dd� |d ur˜tj||dd� |d ur°tj|	|dd� d S )Nc                 S   s   g | ]}|  ¡ ‘qS r:   rM  rN  r:   r:   r;   rQ  é  rR  z7TestDataFramePlots._check_box_coord.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r:   rd  rN  r:   r:   r;   rQ  ê  rR  c                 S   s   g | ]}|  ¡ ‘qS r:   r\  rN  r:   r:   r;   rQ  ë  rR  c                 S   s   g | ]}|  ¡ ‘qS r:   )rC  rN  r:   r:   r;   rQ  ì  rR  F)Zcheck_dtype)r0   r    rÛ   r
  )
r8   r>  Ú
expected_yÚ
expected_hÚ
expected_xÚ
expected_wZresult_yZresult_heightZresult_xZresult_widthr:   r:   r;   Ú_check_box_coordá  s    z#TestDataFramePlots._check_box_coordr#  rš   ©r"   é	   rŠ   r…   r„   ©rŠ   rŠ   rŠ   rŠ   rŠ   ©r„   r…   rŠ   r  r"   rb  r    rQ   rh   )rQ   r"   r  rŠ   r…   r„   )rŠ   rQ   rŠ   rŠ   rŠ   rŠ   )r„   r…   rŠ   rQ   r  r"   c                 C   s–  t |ƒ}|jjdd�}| j|jd d… t g d¢¡t g d¢¡d� | j|jdd… t g d¢¡t g d¢¡d� | j|jdd … t g d¢¡t g d¢¡d� |jjdd	d
�}| j|jd d… t g d¢¡t g d¢¡d� | j|jdd… t g d¢¡t g d¢¡d� | j|jdd … t g d¢¡t g d¢¡d� |jjdd	d	d�}| j|d jt g d¢¡t g d¢¡d� | j|d jt g d¢¡t g d¢¡d� | j|d jt g d¢¡t g d¢¡d� |jjddd�}| j|jd d… t g d¢¡t g d¢¡d� | j|jdd… t g d¢¡t g d¢¡d� | j|jdd … t g d¢¡t g d¢¡d� |jjdd	dd�}| j|jd d… t g d¢¡t g d¢¡d� | j|jdd… t g d¢¡t g d¢¡d� | j|jdd … t g d¢¡t g d¢¡d� |jjdd	d	dd�}| j|d jt g d¢¡t g d¢¡d� | j|d jt g d¢¡t g d¢¡d� | j|d jt g d¢¡t g d¢¡d� d S )Nrh   )rø  )r   r   r   r   r   r  )r	  r
  r"   r  r  T)rø  r  )é   é   rÊ   r¶  é   )rø  r  r?   r   rA   r    r×  )rø  rÖ  )r  r  )rø  r  rÖ  )rø  r  r?   rÖ  )r   r6   r¨   r  r>  r0   r    )r8   r#  r9   rd   rG   r:   r:   r;   Útest_hist_df_coordø  sÆ    ýýýýýýýýýýýýýýýÿýýýz%TestDataFramePlots.test_hist_df_coordc                 C   s,   t tj d¡ d¡ƒ ¡ }t|jdd� d S )Nr    rå  T©r°  )r   r0   r1   r2   r3   Úcumsumr   r6   r7   r:   r:   r;   Útest_plot_int_columnsy  s    z(TestDataFramePlots.test_plot_int_columnsÚmarkersú^ú+Úo)r  r  r  c                 C   s‚   dd l m} | ¡ }| ¡  | d¡ ttj d¡ 	d¡ƒ}|j
|d�}t| ¡ d t|ƒ… ƒD ]\}}| ¡ || ks`J ‚q`d S )Nr   éo   r    r^   )Ústyle)Úmatplotlib.pyplotr‘   ÚgcfZclfÚadd_subplotr   r0   r1   r2   r3   r6   Ú	enumerater·   r’   Z
get_marker)r8   r  Úpltr:  r9   rd   r  rZ   r:   r:   r;   Útest_style_by_column}  s    

 z'TestDataFramePlots.test_style_by_columnc                 C   sP   t ddgƒ}| ¡ }| ¡ d u s$J ‚|jdd�}| ¡  ¡ d  ¡ dksLJ ‚d S )NrA   r    Tr  r   Ú )r	   r6   Ú
get_legendÚ	get_textsr�  )r8   r®   rd   r:   r:   r;   Útest_line_label_none‘  s
    z'TestDataFramePlots.test_line_label_nonezprops, expected))ZboxpropsZboxes)ZwhiskerpropsZwhiskers)ZcappropsZcaps)ZmedianpropsZmediansc                 C   sP   t dd„ dD ƒƒ}|ddii}|jjf ddi|¤Ž}|| d  ¡ dksLJ ‚d S )	Nc                 S   s    i | ]}|t j d ¡ d¡“qS r  )r0   r1   r2   )rO  Úkr:   r:   r;   Ú
<dictcomp>¤  rR  zHTestDataFramePlots.test_specified_props_kwd_plot_box.<locals>.<dictcomp>ÚABCÚcolorZC1rà  râ  r   )r   r6   rÇ  Ú	get_color)r8   Úpropsrg  r9   Zkwdr”   r:   r:   r;   Ú!test_specified_props_kwd_plot_box™  s    z4TestDataFramePlots.test_specified_props_kwd_plot_boxc           	      C   sØ   t dddƒt dddƒt dddƒg}g d¢}tt |¡|dgd�}| ¡ }|jd	  ¡ }t |tj|t	d
�¡ |jd	  
¡ }t |t |¡¡ |j ¡ }dd„ |D ƒ}t|ƒjs²J ‚dd„ |D ƒ}tj|dd�jsÔJ ‚d S )NéÜ  r"   rA   r  rŠ   )rû   rú   rù   Útestrð   r   r%   c                 S   s   g | ]}|  ¡ d  ‘qS )r   )Úget_positionrû  r:   r:   r;   rQ  ¼  rR  z8TestDataFramePlots.test_unordered_ts.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  rû  r:   r:   r;   rQ  ¾  rR  z%Y-%m-%dr›   )r   r   r0   r    r6   rä   râ   rÛ   r
  r5   r   rv   Zget_ticklabelsr   Zis_monotonic_increasingr¢   r£   )	r8   r.   r§  r9   rd   ri   ZydataZxlocsZxlabelsr:   r:   r;   Útest_unordered_tsª  s"    "ý
z$TestDataFramePlots.test_unordered_tsc                 C   s8   t  d¡ tdg d¢iƒ}|j|d� t|j|ƒƒ  d S ©Nrä  rS   rµ   rç  ©rW   ré  r   r6   r¬   ©r8   r  r9   r:   r:   r;   Útest_kind_both_waysÁ  s    
z&TestDataFramePlots.test_kind_both_waysc                 C   s@   t  d¡ tdg d¢iƒ}|jdd|d� t|j|ƒddƒ d S r4  r5  r6  r:   r:   r;   Útest_kind_both_ways_x_yÈ  s    
z*TestDataFramePlots.test_kind_both_ways_x_yc                 C   sN   t tdƒƒ}d}tjt|d�� |j|d� W d   ƒ n1 s@0    Y  d S )NÚabcdúno numeric data to plotrU   rç  )r   r4   rW   rX   rr  r6   ©r8   r  r9   r\   r:   r:   r;   Útest_all_invalid_plot_dataÏ  s    z-TestDataFramePlots.test_all_invalid_plot_datac                 C   s|   t tj d¡ d¡td�}d|tj d¡ |jd ¡dk< d}tjt	|d�� |j
|d	� W d   ƒ n1 sn0    Y  d S )
Nr    ©r"   r    r%   rº   r   r‹  r:  rU   rç  )r   r0   r1   r2   r3   r5   r  rW   rX   rr  r6   r;  r:   r:   r;   Ú(test_partially_invalid_plot_data_numericÖ  s    þ z;TestDataFramePlots.test_partially_invalid_plot_data_numericc                 C   sX   t tj d¡ d¡ƒ}d}tjt|d�� |jdd� W d   ƒ n1 sJ0    Y  d S )Nr    r=  z*invalid_plot_kind is not a valid plot kindrU   Zinvalid_plot_kindrç  )	r   r0   r1   r2   r3   rW   rX   rÚ   r6   r[   r:   r:   r;   Útest_invalid_kindã  s    z$TestDataFramePlots.test_invalid_kindzx,y,lblrº   r»   r¼   c                 C   s^   t ddgddgddgdœƒ}tjtdd	��  |j|||d
� W d   ƒ n1 sP0    Y  d S )NrA   r    rQ   r#   rh   r„   rb  úx must be a label or positionrU   ©rS   rT   rÀ   ©r   rW   rX   rÚ   r6   )r8   rS   rT   Úlblr9   r:   r:   r;   Útest_invalid_xy_argsé  s    	z'TestDataFramePlots.test_invalid_xy_argsc                 C   sf   t ddgddgddgdœƒ}d}tjt|d	��$ |jd
ddgdd� W d   ƒ n1 sX0    Y  d S )NrA   r    rQ   r#   rh   r„   rb  z.label should be list-like and same length as yrU   r–   r(   r—   Z	bad_labelrA  rB  r[   r:   r:   r;   Útest_bad_labelö  s    z!TestDataFramePlots.test_bad_labelzx,yr¶   c                 C   s\   t g d¢g d¢gtdƒd�}tjtdd�� |j||d� W d   ƒ n1 sN0    Y  d S )N)rA   rQ   rh   )r    r#   r„   ZAABr½   r@  rU   rR   )r   r4   rW   rX   rÚ   r6   rn  r:   r:   r;   Útest_invalid_xy_args_dup_colsü  s    z0TestDataFramePlots.test_invalid_xy_args_dup_colszx,y,lbl,colorsr¡  Úbluer   ZbokehÚcythonÚgreenÚyellowc                 C   sj   t ddgddgddgdœƒ}t|jd||d	� |j||||d
�}t|jƒt|ƒksVJ ‚t| ¡ |d� d S )NrA   r    rQ   r#   rh   r„   rb  r–   rA  )rS   rT   rÀ   r,  ©Z
linecolors)r   r   r6   r’   rä   r   r·   )r8   rS   rT   rC  rª  r9   rd   r:   r:   r;   Útest_y_listlike  s
    
z"TestDataFramePlots.test_y_listlikezx,y,colnamesc                 C   s0   t ddgddgdœƒ}||_t|j||d� d S )NrA   r    rQ   r#   r¶   rR   )r   r-   r   r6   )r8   rS   rT   Zcolnamesr9   r:   r:   r;   Útest_xy_args_integer  s    z'TestDataFramePlots.test_xy_args_integerc                 C   sr   t tj d¡jdd�tj d¡jdd�t d¡tj d¡jdd� dœƒ}|jjdddd�}t|j	ƒd	ksnJ ‚d S )
Nr    r`  rî  rb  r–   r(   r"   )rS   rT   ZgridsizerA   ©
r   r0   r1   r2   rð  rÈ   r6   r±   r’   r“  rc   r:   r:   r;   Útest_hexbin_basic  s    ýÿz$TestDataFramePlots.test_hexbin_basicc                 C   s†   t tj d¡jdd�tj d¡jdd�t d¡tj d¡jdd� dœƒ}|jjdddd�}t|d	 j	j
ƒdkstJ ‚t|d
dd� d S )Nr    r`  rî  rb  r–   r(   T)rS   rT   r?   r   rA   r�   rB   )r   r0   r1   r2   rð  rÈ   r6   r±   r’   ÚfigurerG   r   rF   r:   r:   r;   Útest_hexbin_basic_subplots(  s    ýÿz-TestDataFramePlots.test_hexbin_basic_subplotsÚreduce_Cc                 C   st   t tj d¡jdd�tj d¡jdd�t d¡tj d¡jdd� dœƒ}|jjddd|d�}t|j	ƒd	kspJ ‚d S )
Nr    r`  rî  rb  r–   r(   r—   )rS   rT   r—   Zreduce_C_functionrA   rN  )r8   rR  r9   rd   r:   r:   r;   Útest_hexbin_with_c8  s    ýÿz%TestDataFramePlots.test_hexbin_with_czkwargs, expectedZBuGnr   rŸ  rœ  ZYlGnc                 C   s|   t tj d¡jdd�tj d¡jdd�t d¡tj d¡jdd� dœƒ}|jjf dddœ|¤Ž}|jd j	j
|ksxJ ‚d S )	Nr    r`  rî  rb  r–   r(   rR   r   )r   r0   r1   r2   rð  rÈ   r6   r±   r“  rœ  rÁ   )r8   rf   rg  r9   rd   r:   r:   r;   Útest_hexbin_cmapE  s    	ýÿz#TestDataFramePlots.test_hexbin_cmapc                 C   sd   t tj d¡ d¡g d¢g d¢d�}d}tjt|d�� |j ¡  W d   ƒ n1 sV0    Y  d S )Nr    ©rh   rQ   ©ÚXÚYÚZ©rº   r»   r¼   ÚdÚer,   z/pie requires either y column or 'subplots=True'rU   )	r   r0   r1   r2   rW   rX   rÚ   r6   r©   r[   r:   r:   r;   Útest_pie_df_errX  s    ýz"TestDataFramePlots.test_pie_df_errrX  c                 C   sF   t tj d¡ d¡g d¢g d¢d�}t|jj|d�}t|j|j	ƒ d S )Nr    rU  rV  rZ  r,   rÅ   )
r   r0   r1   r2   r   r6   r©   r   Útextsr.   )r8   rT   r9   rd   r:   r:   r;   Útest_pie_dfb  s    ýzTestDataFramePlots.test_pie_dfc                 C   sŽ   t tj d¡ d¡g d¢g d¢d�}t|jjddd�}t|ƒt|jƒksLJ ‚|D ]}t	|j
|jƒ qPt||jƒD ]\}}| ¡ |kspJ ‚qpd S )Nr    rU  rV  rZ  r,   Tr=   )r   r0   r1   r2   r   r6   r©   r’   r-   r   r^  r.   r|   r�  )r8   r9   rG   rd   Úylabelr:   r:   r;   Útest_pie_df_subplotsl  s    ýýz'TestDataFramePlots.test_pie_df_subplotsc                 C   sˆ   t tj d¡ d¡g d¢g d¢d�}g d¢}g d¢}t|jjdd||d	�}t|ƒt|jƒks`J ‚|D ]}t	|j
|ƒ t|j|d
� qdd S )Nr    rU  rV  rZ  r,   rŸ   )r@  Úgr»   r¼   ÚmT)r>   r?   rÊ  rª  r¢  )r   r0   r1   r2   r   r6   r©   r’   r-   r   r^  r   r>  )r8   r9   rÊ  Z
color_argsrG   rd   r:   r:   r;   Útest_pie_df_labels_colors}  s$    ýûz,TestDataFramePlots.test_pie_df_labels_colorsc                 C   s  t tj d¡ d¡ƒ}tdƒD ]}tj|j||f< qtjj	dd�\}}ddi}t
 d ¡�* |jjf d|ddœ|¤Ž W d   ƒ n1 sˆ0    Y  g d¢}t|ƒD ]r\}}t|ƒ}d	||< d
d„ |jD ƒ}	|	|ksÖJ ‚dd„ | ¡  ¡ D ƒ}
|d |… ||d d …  }|
|ks¢J ‚q¢d S )Nr    )r#   r#   r#   )ZncolsÚ	normalizeT)r?   rd   r°  )Ú0Ú1Ú2Ú3r%  c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  rû  r:   r:   r;   rQ  ¢  rR  z6TestDataFramePlots.test_pie_df_nan.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  rû  r:   r:   r;   rQ  ¨  rR  rA   )r   r0   r1   r2   r}   r¡   Zilocr�   r‘   r?   rÛ   rÜ   r6   r©   r"  r4   r^  r&  r'  )r8   r9   rŽ  r“   rG   rf   Zbase_expectedrd   rg  r”   Zresult_labelsÚexpected_labelsr:   r:   r;   Útest_pie_df_nan’  s     8z"TestDataFramePlots.test_pie_df_nanrÐ   )rÓ   rÐ   rÖ   c                 C   sp   t  d¡t  ddd¡dœ}t|ƒ}t  d¡d t  d¡d dœ}t|ƒ}t|jfd|i|¤Ž}t|ddd	� d S )
Nr|  r   rI   rR   çš™™™™™É?çš™™™™™Ù?Úyerrr    ©Úxerrrn  ©r0   rÈ   r   Úonesr   r6   r   )r8   rf   r[  r9   Úd_errÚdf_errrd   r:   r:   r;   Útest_errorbar_plot¬  s    
z%TestDataFramePlots.test_errorbar_plotc                 C   sr   t  d¡t  ddd¡dœ}t|ƒ}t  d¡d t  d¡d dœ}t|ƒ}t|d j||dd	d
�}t|ddd� d S )Nr|  r   rI   rR   rl  rm  rA   rˆ   T)rn  rp  r  rÍ   r    ro  rq  )r8   r[  r9   rs  rt  rd   r:   r:   r;   Útest_errorbar_plot_bar¿  s    ÿz)TestDataFramePlots.test_errorbar_plot_barc                 C   sv   t  d¡t  ddd¡dœ}t|ƒ}t|d jt  d¡d d�}t|ddd	� t|jt  d
¡d d�}t|ddd	� d S )Nr|  r   rI   rR   rT   rm  ©rn  rA   ro  )r    r|  r    )r0   rÈ   r   r   r6   rr  r   ©r8   r[  r9   rd   r:   r:   r;   Útest_errorbar_plot_yerr_arrayÊ  s    z0TestDataFramePlots.test_errorbar_plot_yerr_arrayrn  u   èª¤å·®c                 C   st   t  d¡t  ddd¡dœ}t|ƒ}t  d¡d ||< t|j|d�}t|ddd� t|jd	d
|d�}t|ddd� d S )Nr|  r   rI   rR   rl  rw  r    ro  rT   rS   )rT   rS   rn  rA   rq  )r8   rn  r[  r9   rd   r:   r:   r;   Útest_errorbar_plot_column_nameÕ  s    z1TestDataFramePlots.test_errorbar_plot_column_namec                 C   sj   t  d¡t  ddd¡dœ}t|ƒ}t t¡�* |jt j d¡ 	d¡d� W d   ƒ n1 s\0    Y  d S )Nr|  r   rI   rR   r    rÃ  rw  )
r0   rÈ   r   rÛ   Úexternal_error_raisedrÚ   r6   r1   r2   r3   ©r8   r[  r9   r:   r:   r;   Ú&test_errorbar_plot_external_valueerrorâ  s    z9TestDataFramePlots.test_errorbar_plot_external_valueerrorc                 C   sv   t  d¡t  ddd¡dœ}t|ƒ}tdgd dgd dœƒ}t t¡� |j|d� W d   ƒ n1 sh0    Y  d S )Nr|  r   rI   rR   Úzzzrw  )r0   rÈ   r   rÛ   r{  rr  r6   )r8   r[  r9   rt  r:   r:   r;   Ú%test_errorbar_plot_external_typeerroré  s
    z8TestDataFramePlots.test_errorbar_plot_external_typeerror)rZ   rˆ   rD  Úy_errr|  rl  )rÁ   rm  c                 C   s@   t t d¡t ddd¡dœƒ}t|j||d�}t|ddd� d S )Nr|  r   rI   rR   ©rn  r  r    ro  ©r   r0   rÈ   r   r6   r   )r8   r  r€  r9   rd   r:   r:   r;   Ú!test_errorbar_plot_different_yerrñ  s    
z4TestDataFramePlots.test_errorbar_plot_different_yerrzy_err, x_err)rl  rl  c                 C   sB   t t d¡t ddd¡dœƒ}t|j|||d�}t|ddd� d S )Nr|  r   rI   rR   )rn  rp  r  r    ro  r‚  )r8   r  r€  Zx_errr9   rd   r:   r:   r;   Ú&test_errorbar_plot_different_yerr_xerr   s    z9TestDataFramePlots.test_errorbar_plot_different_yerr_xerrc                 C   sh   t t d¡t ddd¡dœƒ}t t d¡d t d¡d dœƒ}t|jd||d|d�}t|d	d	d
� d S )Nr|  r   rI   rR   rl  rm  T)r>   rn  rp  r?   r  rA   ro  )r   r0   rÈ   rr  r   r6   r   )r8   r  r9   rt  rG   r:   r:   r;   Ú/test_errorbar_plot_different_yerr_xerr_subplots  s    "úzBTestDataFramePlots.test_errorbar_plot_different_yerr_xerr_subplotszIterator is consumed)rP   rX   c                 C   sN   t  d¡t  ddd¡dœ}t|ƒ}t|jt dt|ƒ¡d�}t|ddd� d S )	Nr|  r   rI   rR   r  rw  r    ro  )	r0   rÈ   r   r   r6   Ú	itertoolsÚrepeatr’   r   rx  r:   r:   r;   Útest_errorbar_plot_iterator!  s    z.TestDataFramePlots.test_errorbar_plot_iteratorc                 C   sv   t t tj d¡ d¡¡ƒ}t t tj d¡ d¡¡ƒ}t|j|d�}t|ddd� t|jddd�}t|ddd� d S )Nr    r=  rw  r   ro  rA   )rT   rn  ©	r   r0   Úabsr1   r2   r3   r   r6   r   ©r8   r9   rt  rd   r:   r:   r;   Ú'test_errorbar_with_integer_column_names*  s    z:TestDataFramePlots.test_errorbar_with_integer_column_namesc                 C   sb   t t tj d¡ d¡¡ƒ}t t tj d¡ d¡¡ddgd�}t|j||d�}t|ddd� d S )Nr    r^   r=  r   r½   r�  ro  r‰  )r8   r  r9   rt  rd   r:   r:   r;   Ú'test_errorbar_with_partial_columns_kind3  s    ÿz:TestDataFramePlots.test_errorbar_with_partial_columns_kindc                 C   sŒ   t t tj d¡ d¡¡ƒ}t t tj d¡ d¡¡ddgd�}tdddd	�}|j|d
d� |j|d
d� t|j	|dd�}t
|ddd� d S )Nr    r^   r=  r   r½   ú1/1/2000r"   ÚMEr)   T)ZinplacerZ   r�  ro  )r   r0   rŠ  r1   r2   r3   r   rÆ   r   r6   r   )r8   r9   rt  Úixrd   r:   r:   r;   Ú&test_errorbar_with_partial_columns_dti=  s    ÿz9TestDataFramePlots.test_errorbar_with_partial_columns_dtiÚerr_boxc                 C   s   | S r�  r:   rÄ   r:   r:   r;   Ú<lambda>J  rR  zTestDataFramePlots.<lambda>c                 C   sd   t  d¡t  ddd¡dœ}t|ƒ}|t  d¡d t  d¡d dœƒ}t|j|d�}t|dd	d
� d S )Nr|  r   rI   rR   rl  rm  )rS   r´   rw  rA   ro  rq  )r8   r’  r[  r9   Úerrrd   r:   r:   r;   Ú&test_errorbar_with_partial_columns_boxI  s
    "z9TestDataFramePlots.test_errorbar_with_partial_columns_boxc           	      C   s"  t  d¡t  ddd¡dœ}t  d¡d t  d¡d dœ}tddd	d
�}t||d�}t||d�}t|j||d�}t|ddd� t|j||d�}t|ddd� t|jd|d |d�}t|ddd� t|jdd|d�}t|ddd� t|j||d�}t|ddd� t|jd||dd�}t|ddd� d S )Nr|  r   rI   rR   rl  rm  rŽ  z1/1/2001r�  )r+   r_   r�  r    ro  rT   rS   )rT   rn  r  rA   T)r>   r  rn  r?   )r0   rÈ   rr  r   r   r   r6   r   )	r8   r  r[  rs  r�  ZtdfZtdf_errrd   rG   r:   r:   r;   Útest_errorbar_timeseriesR  s.    ûz+TestDataFramePlots.test_errorbar_timeseriesc                 C   sÒ   t j d¡ d¡}tt  d¡ dd¡ƒj}|j||d d�}|jd  	¡ d j
d d …df }|dd d …df t  d	dg¡ }t ||¡ t d
¡}tjt|d�� |j|jd� W d   ƒ n1 sÄ0    Y  d S )Nr    )rQ   r    rh   r¶  rQ   rh   )rn  rp  rA   r   rI   zCAsymmetrical error bars should be provided with the shape (3, 2, 5)rU   rw  )r0   r1   r2   r   rÈ   ZreshapeÚTr6   r“  Ú	get_pathsZverticesr    rÛ   rý  rp  rq  rW   rX   rÚ   )r8   r”  r9   rd   Zyerr_0_0Zexpected_0_0r\   r:   r:   r;   Útest_errorbar_asymmetricalt  s      ÿz-TestDataFramePlots.test_errorbar_asymmetricalc                 C   s¬   t tj d¡ d¡ttjd d… ƒd�}t|jdd� t|j|d� t	 
d ¡�J | ¡ }t|jƒdksjJ ‚t ||j¡ t|jƒdksŠJ ‚W d   ƒ n1 sž0    Y  d S )	Nr    r^   r"   r_   T)Útabler   rA   )r   r0   r1   r2   r4   ra   rb   r   r6   rÛ   rÜ   r’   Ztablesr   rš  r—  rc   r:   r:   r;   Ú
test_table†  s    þzTestDataFramePlots.test_tablec                 C   sä   t t tj d¡ d¡¡tdƒddgd�}t t tj d¡ d¡¡d tdƒddgd�}t|jj	ddd�}t
|ddd	� t|jj	dd|d
�}t
|ddd	� t|jj	dd|d�}t
|ddd	� t|jj	dd||d�}t
|ddd	� d S )Nr    )rh   r    rh   rS   rT   rð   rR   r   ro  )rS   rT   rp  rA   )rS   rT   rn  )rS   rT   rp  rn  )r   r0   rŠ  r1   r2   r3   r}   r   r6   r°   r   r‹  r:   r:   r;   Útest_errorbar_scatter•  s$    ýýz(TestDataFramePlots.test_errorbar_scatterc                    s¬   d‡ fdd„	}t t tj d¡ d¡¡g d¢d�}|jjdd	d
ddd�‰ tˆ ddd� |ˆ j	ddd� |ˆ j	ddd� |jjdd	ddd�‰ tˆ ddd� |ˆ j	ddd� d S )NÚhas_xerrc                    sv   g }t ‡ fdd„ˆjD ƒƒ}|D ]"}t|ƒr8| |¡ q | |¡ q ‡fdd„|D ƒ}t|t |gt|ƒ ¡d� d S )Nc                 3   s    | ]}t |ˆ d ƒr|jV  qdS )FN)r¬   rä   rÅ  ©Úhas_errr:   r;   r‘  ®  rR  z`TestDataFramePlots.test_errorbar_scatter_color.<locals>._check_errorbar_color.<locals>.<genexpr>c                    s   g | ]}|ˆ j v r|‘qS r:   )r“  rû  ©rd   r:   r;   rQ  ´  rR  zaTestDataFramePlots.test_errorbar_scatter_color.<locals>._check_errorbar_color.<locals>.<listcomp>rK  )	ÚnextÚ
containersr   ÚextendÚappendr   r0   r    r’   )r¢  rg  rŸ  rä   ZerrsÚelZ	err_linesr   rž  r;   Ú_check_errorbar_color¬  s    zMTestDataFramePlots.test_errorbar_scatter_color.<locals>._check_errorbar_colorr    )r"   rh   rZ  r½   rº   r»   r[  r\  r¡  )rS   rT   rp  rn  r¼   rA   ro  rž  Zhas_yerrrI  )rS   rT   rn  r,  r   )r�  )
r   r0   rŠ  r1   r2   r3   r6   r°   r   r¢  )r8   r¦  r9   r:   r   r;   Útest_errorbar_scatter_color«  s    þz.TestDataFramePlots.test_errorbar_scatter_colorc                 C   sZ   t g d¢ddœƒ}tjttfdd��" |jdddd	d
� W d   ƒ n1 sL0    Y  d S )Nrµ   r#   r  z'unknown' is not arU   rº   r»   Úunknownr°   )rS   rT   r   r  )r   rW   rX   rÚ   ÚKeyErrorr6   r7   r:   r:   r;   Útest_scatter_unknown_colormapÅ  s    z0TestDataFramePlots.test_scatter_unknown_colormapc                 C   sØ   dd l m} | d¡ tƒ \}}tg d¢g d¢g d¢g d¢dœƒ}dd„ }|D ]}|jddd	|d
d� qN| | ¡ ¡ ||ƒ | d¡ tƒ \}}t 	t
¡�  |jd
|d
d�}W d   ƒ n1 sÂ0    Y  ||ƒ d S )Nr   r•  ©rA   r    rQ   r#   rh   r„   ©rº   r»   r¼   r[  c                 S   s¤   | D ]&}t |jƒdksJ ‚t| ¡ dd� q| d | d fD ](}t| ¡ dd� t|jdd�dd� q<| d | d fD ](}t| ¡ dd� t|jdd�dd� qvd S )	NrA   Trr   r   r    Frt   rQ   )r’   rä   r   rÛ  rw   ©rG   rd   r:   r:   r;   Ú_checkÝ  s    z5TestDataFramePlots.test_sharex_and_ax.<locals>._checkrº   r»   rm   T)rS   rT   rm   rd   Úsharex)r?   rd   r¯  )r  r‘   ÚcloseÚ_generate_4_axes_via_gridspecr   r6   Útight_layoutr   rÛ   rÜ   rÝ   ©r8   r#  ÚgsrG   r9   r®  rd   r:   r:   r;   Útest_sharex_and_axË  s(    

üÿ	

.z%TestDataFramePlots.test_sharex_and_axc                 C   s¶   dd l m} tg d¢g d¢g d¢g d¢dœƒ}tƒ \}}|D ]}|jddd|d� q<| | ¡ ¡ |D ]J}t|jƒdks|J ‚t	| 
¡ d	d
� t	| ¡ d	d
� t	|jd	d�d	d
� qfd S ©Nr   r«  r¬  rº   r»   rm   )rS   rT   rm   rd   rA   Trr   rt   ©r  r‘   r   r±  r6   r²  r   r’   rä   r   rÛ  rw   ©r8   r#  r9   r´  rG   rd   r:   r:   r;   Útest_sharex_false_and_axó  s"    üÿ
z+TestDataFramePlots.test_sharex_false_and_axc                 C   sÜ   dd l m} tƒ \}}tg d¢g d¢g d¢g d¢dœƒ}dd„ }|D ]}|jddd|d	d
� qD| | ¡ ¡ ||ƒ | d¡ tƒ \}}t 	t
¡�  |jd	|d	d�}W d   ƒ n1 s¸0    Y  | | ¡ ¡ ||ƒ d S )Nr   r«  r¬  c                 S   s�   | D ]:}t |jƒdksJ ‚t| ¡ dd� t|jdd�dd� q| d | d fD ]}t| ¡ dd� qP| d | d fD ]}t| ¡ dd� qvd S )	NrA   Trr   rt   r   r    rQ   F)r’   rä   r   rw   rÛ  r­  r:   r:   r;   r®    s    z5TestDataFramePlots.test_sharey_and_ax.<locals>._checkrº   r»   rm   T)rS   rT   rm   rd   r9  r•  )r?   rd   r9  )r  r‘   r±  r   r6   r²  r   r°  rÛ   rÜ   rÝ   r³  r:   r:   r;   Útest_sharey_and_ax  s(    
üÿ	


.z%TestDataFramePlots.test_sharey_and_axc                 C   s¶   dd l m} tg d¢g d¢g d¢g d¢dœƒ}tƒ \}}|D ]}|jddd|d� q<| | ¡ ¡ |D ]J}t|jƒdks|J ‚t	| 
¡ d	d
� t	| ¡ d	d
� t	|jd	d�d	d
� qfd S r¶  r·  r¸  r:   r:   r;   Útest_sharey_and_ax_tight5  s"    üÿ
z+TestDataFramePlots.test_sharey_and_ax_tightc                 C   s  t  d¡ i }|dv rlttj d¡jdd�tj d¡jdd�t d¡tj d¡jdd� dœƒ}ddd	œ}nr|d
kr¬ttj d¡ d¡t	t
dƒtd�tdddd�d� ¡ }n2ttj d¡ d¡t	t
dƒtd�tdddd�d�}t |jf d|i|¤Ž¡}t d¡ t ¡  |ƒ du �sJ ‚dS )z3Check that every plot type gets properly collected.rä  )r±   r°   r©   r    r`  rî  rb  r–   r(   rR   r  r!   r$   r%   r'   r"   r)   r,   r  r•  N)rW   ré  r   r0   r1   r2   rð  rÈ   r3   r   r4   r5   r   rŠ  ÚweakrefÚrefr6   r#  r°  ÚgcZcollect)r8   r  Úargsr9   r½  r:   r:   r;   Útest_memory_leakM  s2    
ýÿýý
z#TestDataFramePlots.test_memory_leakc           	         s–  ddl m‰  dd lm‰ ttj d¡ d¡t	ddd�d�}t
tj d¡ d¡|jtd	ƒd
�}‡ ‡fdd„}‡ ‡fdd„}|ƒ |ƒ fD ]�\}}|j|d�}t|jƒdksªJ ‚|j|d�}t|jƒdksÈJ ‚||fD ]8}t| ¡ dd� t| ¡ dd� t|jdd�dd� qÐˆ d¡ q„|ƒ |ƒ fD ]Ž\}}|jd||gd�}t|jƒdk�sPJ ‚t|jƒdk�sdJ ‚|D ]:}t| ¡ dd� t| ¡ dd� t|jdd�dd� �qhˆ d¡ �q"|ƒ \}}t t¡�& |jd||gddd�}W d   ƒ n1 �sô0    Y  t|d jƒdk�sJ ‚t|d jƒdk�s.J ‚||fD ]}t| ¡ dd� �q6t|d  ¡ dd� t|d jdd�dd� t|d  ¡ dd� t|d jdd�dd� ˆ d¡ |ƒ \}}t t¡�& |jd||gddd�}W d   ƒ n1 �sò0    Y  t|d jƒdk�sJ ‚t|d jƒdk�s,J ‚t|d  ¡ dd� t|d  ¡ dd� ||fD ]*}t| ¡ dd� t|jdd�dd� �q\ˆ d¡ d S )Nr   ©Úgridspecr    r"   rŽ  ©r*   r_   r=  ÚABrð   c                     sL   ˆ   dd¡} ˆ ¡ }| | d d…d d …f ¡}| | dd d …f ¡}||fS )NrQ   rA   r    ©ÚGridSpecrP  r!  ©r´  r:  r  r  ©rÂ  r#  r:   r;   Ú_get_vertical_grid‚  s
    zSTestDataFramePlots.test_df_gridspec_patterns_vert_horiz.<locals>._get_vertical_gridc                     sL   ˆ   dd¡} ˆ ¡ }| | d d …d d…f ¡}| | d d …df ¡}||fS )NrA   rQ   r    rÅ  rÇ  rÈ  r:   r;   Ú_get_horizontal_grid‰  s
    zUTestDataFramePlots.test_df_gridspec_patterns_vert_horiz.<locals>._get_horizontal_gridr   rA   Trr   rt   r•  r�   ©r?   rd   r¯  r9  F©r   rÂ  r  r‘   r	   r0   r1   r2   r3   r   r   r.   r4   r6   r’   rä   r   rÛ  rw   r°  rÛ   rÜ   rÝ   )	r8   Útsr9   rÉ  rÊ  r  r  rd   rG   r:   rÈ  r;   Ú$test_df_gridspec_patterns_vert_horizr  sn    
þý
6

6z7TestDataFramePlots.test_df_gridspec_patterns_vert_horizc                    s  ddl m‰  dd lm‰ ttj d¡ d¡t	ddd�d�}‡ ‡fdd	„}|ƒ }t
tj d¡ d
¡|jtdƒd�}|jd|d�}|D ]J}t|jƒdks˜J ‚t| ¡ dd� t| ¡ dd� t|jdd�dd� q‚ˆ d¡ |ƒ }t t¡�" |jd|ddd�}W d   ƒ n1 �s0    Y  |D ]}t|jƒdk�s J ‚�q |d |d fD ]}t| ¡ dd� �qL|d |d fD ]}t| ¡ dd� �qt|d |d fD ]*}t| ¡ dd� t|jdd�dd� �qœ|d |d fD ]*}t| ¡ dd� t|jdd�dd� �qØˆ d¡ d S )Nr   rÁ  r    r"   rŽ  rÃ  r_   c                     st   ˆ   dd¡} ˆ ¡ }| | d d…d d…f ¡}| | d d…df ¡}| | dd d…f ¡}| | d ¡}||||fS )NrQ   r    rJ   rÅ  )r´  r:  r  r  Zax3Zax4rÈ  r:   r;   Ú_get_boxed_gridÐ  s    zKTestDataFramePlots.test_df_gridspec_patterns_boxed.<locals>._get_boxed_gridr!   r$   rð   Tr�   rA   rr   rt   r•  rË  rQ   FrÌ  )r8   rÍ  rÏ  rG   r9   rd   r:   rÈ  r;   Útest_df_gridspec_patterns_boxedÅ  sH    
þ	ý
2z2TestDataFramePlots.test_df_gridspec_patterns_boxedc                 C   s.   t tg d¢g d¢dœƒtjjdddœd� d S )Nrµ   r‚  r  rº   r»   rR   )Úkws)r   r   r   ÚPlotAccessorZ_dataframe_kinds)r8   r:   r:   r;   Útest_df_grid_settingsú  s
    ýz(TestDataFramePlots.test_df_grid_settingsc                 C   s>   t j ¡ \}}| g d¢¡ ttj d¡ d¡ƒj|d� d S )N)rl  rl  rl  rl  r    r"   r   )	r�   r‘   r?   Úadd_axesr	   r0   r1   r2   r6   )r8   r:  rd   r:   r:   r;   Útest_plain_axes	  s    z"TestDataFramePlots.test_plain_axesc                 C   sX   t tj d¡ d¡tj d¡ d¡dœƒ}tj ¡ }| d¡}|j	d|ddddd	� d S )
Nr    rŠ   r  )r   r   rA   rA   r°   rº   r»   Zhsv)r  rd   rS   rT   r¼   rœ  )
r   r0   r1   r2   r3   r�   r‘   rP  rÔ  r6   )r8   r9   r:  rd   r:   r:   r;   Útest_plain_axes_df		  s    þÿ

z%TestDataFramePlots.test_plain_axes_dfc                 C   sr   t j ¡ \}}ddlm} ||ƒ}|jdddd�}ttj 	d¡ d¡ƒj
|d	� ttj 	d¡ d¡ƒj
|d	� d S )
Nr   )Úmake_axes_locatabler¦  z5%gš™™™™™©?)r›  Úpadr    r"   r   )r�   r‘   r?   Zmpl_toolkits.axes_grid1r×  Zappend_axesr	   r0   r1   r2   r6   )r8   r:  rd   r×  ÚdividerZcaxr:   r:   r;   Ú#test_plain_axes_make_axes_locatable	  s    z6TestDataFramePlots.test_plain_axes_make_axes_locatablec                 C   sj   t j ¡ \}}ddlm} ||dddd�}ttj d¡ d¡ƒj	|d	� ttj d¡ d¡ƒj	|d	� d S )
Nr   )Ú
inset_axesz30%rù   rQ   )rG  rÌ  rñ  r    r"   r   )
r�   r‘   r?   Z%mpl_toolkits.axes_grid1.inset_locatorrÛ  r	   r0   r1   r2   r6   )r8   r:  rd   rÛ  Ziaxr:   r:   r;   Útest_plain_axes_make_inset_axes 	  s
    z2TestDataFramePlots.test_plain_axes_make_inset_axesÚmethod)rZ   rD  rˆ   c                 C   sv   t tj d¡ d¡tdƒd�jdd„ d�jdd„ d	�}d
}ddg}||ddœ}t|j|ƒf i |¤Ž}t	|j
|d� d S )Nr    )r¶  r    rÄ  r½   c                 S   s
   | j  ¡ S r�  )r(   r  ©r9   r:   r:   r;   r“  /	  rR  zBTestDataFramePlots.test_secondary_axis_font_size.<locals>.<lambda>©r—   c                 S   s
   | j d S )Ngš™™™™™ñ?rß  rÞ  r:   r:   r;   r“  0	  rR  )r˜   r`  r—   r˜   T)r/  r¼  Z
mark_right)rG   r¿  )r   r0   r1   r2   r3   r4   Zassignr¬   r6   r   r2  )r8   rÝ  r9   r¼  r  rf   rd   r:   r:   r;   Útest_secondary_axis_font_size(	  s    ÿýüÿz0TestDataFramePlots.test_secondary_axis_font_sizec                 C   sŽ   t g d¢g d¢g d¢dœƒ}|jjdd�}| dd¡ d	d
„ | ¡ D ƒ}tt|| ¡ ƒƒ}|d dksjJ ‚|d dkszJ ‚|d dksŠJ ‚d S )N)rQ   r    rQ   )r`  é*   é   )ÚMondayÚTuesdayÚ	Wednesday)ZsalesZvisitsÚdayræ  rÄ   rI   rQ   c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  ©rO  Útr:   r:   r;   rQ  F	  rR  zATestDataFramePlots.test_x_string_values_ticks.<locals>.<listcomp>rã  rø   rä  rù   rå  rú   )r   r6   r  Úset_xlimrw   râ  r|   Ú
get_xticks)r8   r9   rd   ÚxticklabelsÚlabels_positionr:   r:   r;   Útest_x_string_values_ticks:	  s    ýÿz-TestDataFramePlots.test_x_string_values_ticksc                 C   s²   t  ddgddgg¡}ttj d¡ d¡ddg|d�}| ¡ }| d	d
¡ dd„ | 	¡ D ƒ}t
t|| ¡ ƒƒ}|d dks~J ‚|d dksŽJ ‚|d dksžJ ‚|d dks®J ‚d S )Nr0  iÝ  rA   r    r8  r–   r(   r,   rI   r#   c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  rç  r:   r:   r;   rQ  X	  rR  zETestDataFramePlots.test_x_multiindex_values_ticks.<locals>.<listcomp>z	(2012, 1)rø   z	(2012, 2)rù   z	(2013, 1)rú   z	(2013, 2)rû   )r   Zfrom_productr   r0   r1   r2   r3   r6   ré  rw   râ  r|   rê  )r8   r.   r9   rd   rë  rì  r:   r:   r;   Útest_x_multiindex_values_ticksM	  s    ýz1TestDataFramePlots.test_x_multiindex_values_ticksc                 C   sL   t ddgddgd�}|j|d�}| ¡ }|d dk s8J ‚|d dksHJ ‚d S )Nr    r#   rA   r_   rç  r   )r   r6   rü   )r8   r  r9   rd   Úxlimsr:   r:   r;   Útest_xlim_plot_line`	  s
    z&TestDataFramePlots.test_xlim_plot_linec                 C   s²   t j ¡ \}}g d¢}tg d¢g d¢g d¢g d¢dœ|d�}|g d¢ jj|d	d
� |dg j|dd� | ¡ }|d dk s€J ‚|d dks�J ‚dd„ | ¡ D ƒ}||ks®J ‚d S )N)Zk1Zk2Zk3Zk4)iè  rî   éÜ  rî   )i„  ix  rî   i¸  )rñ  rñ  i@  i°  )rA   rQ   r#   rQ   )Ús1Ús2Ús3r/  r_   )rò  ró  rô  F)rd   r  r/  T)rd   r/  r   rA   rQ   c                 S   s   g | ]}|  ¡ ‘qS r:   rŒ  rç  r:   r:   r;   rQ  �	  rR  zWTestDataFramePlots.test_xlim_plot_line_correctly_in_mixed_plot_type.<locals>.<listcomp>)r�   r‘   r?   r   r6   rˆ   rü   rw   )r8   r:  rd   Zindexesr9   rï  rë  r:   r:   r;   Ú0test_xlim_plot_line_correctly_in_mixed_plot_typej	  s"    üù	zCTestDataFramePlots.test_xlim_plot_line_correctly_in_mixed_plot_typec                 C   sl   t dgtd�}|jsJ ‚| ¡ }t| ¡ ƒdks4J ‚| ¡ d }t| ¡ ƒdksTJ ‚t| ¡ ƒdkshJ ‚d S )NZfoo)r-   r&   rA   r   )r   ÚintÚemptyr6   r’   r·   râ   r   )r8   r9   rd   rZ   r:   r:   r;   Útest_plot_no_rows„	  s    
z$TestDataFramePlots.test_plot_no_rowsc                 C   sF   t g d¢ƒ}tjtdd�� | ¡  W d   ƒ n1 s80    Y  d S )Nr¹   r:  rU   )r   rW   rX   rr  r6   r7   r:   r:   r;   Útest_plot_no_numeric_dataŽ	  s    z,TestDataFramePlots.test_plot_no_numeric_data)rZ   rˆ   rD  r¨   ræ  rù  r  r©   c                 C   sÈ   t  d¡ t d¡t d¡d t d¡d t d¡t d¡dœ}t|ƒ}|jddg|d�}t|ƒdksjJ ‚d	d
gddgdgf}t||ƒD ]:\}}|dkr¤t||d� |dkrˆt|j	ƒt|ƒksˆJ ‚qˆd S )Nrä  r"   rA   rZ  )r»   r\  )r¼   r[  ©r?   r  rQ   r»   r\  r¼   r[  rº   r©   rè  rZ   )
rW   ré  r0   rÈ   r   r6   r’   r|   r   rä   )r8   r  r[  r9   rG   rj  rd   rÊ  r:   r:   r;   Útest_group_subplot“	  s     
ûz%TestDataFramePlots.test_group_subplotc                 C   sP   t tdƒƒ}d}tjt|d�� |jdgd� W d   ƒ n1 sB0    Y  d S )NrA   z!An iterable subplots for a SeriesrU   ©rº   ©r?   )r	   r}   rW   rX   ÚNotImplementedErrorr6   )r8   Zserr\   r:   r:   r;   Ú(test_group_subplot_series_notimplemented«	  s    z;TestDataFramePlots.test_group_subplot_series_notimplementedc                 C   s`   t t d¡t ddg¡d�}d}tjt|d�� |jdgd� W d   ƒ n1 sR0    Y  d S )Nr    r{  rm  r½   z6An iterable subplots for a DataFrame with a MultiIndexrU   rý  )	r   r0   Úeyer   r~   rW   rX   rþ  r6   r[   r:   r:   r;   Ú,test_group_subplot_multiindex_notimplemented±	  s    z?TestDataFramePlots.test_group_subplot_multiindex_notimplementedc                 C   sZ   t t d¡ddgd�}d}tjt|d�� |jdgd� W d   ƒ n1 sL0    Y  d S )Nr    rº   r½   z4An iterable subplots for a DataFrame with non-uniquerU   rü  rý  )r   r0   r   rW   rX   rþ  r6   r[   r:   r:   r;   Ú0test_group_subplot_nonunique_cols_notimplemented·	  s    zCTestDataFramePlots.test_group_subplot_nonunique_cols_notimplementedzsubplots, expected_msg))é{   z(subplots should be a bool or an iterable)rº   ú!each entry should be a list/tuple))rA   r  )rü  r  c                 C   s\   t  d¡t  d¡dœ}t|ƒ}tjt|d�� |j|d� W d   ƒ n1 sN0    Y  d S )Nr"   r  rU   rý  ©r0   rÈ   r   rW   rX   rÚ   r6   )r8   r?   Zexpected_msgr[  r9   r:   r:   r;   Útest_group_subplot_bad_input½	  s    z/TestDataFramePlots.test_group_subplot_bad_inputc                 C   s®   t  d¡t  d¡dœ}t|ƒ}tt jƒtdƒk rntjtdd�� |jdgd� W d   ƒ qª1 sb0    Y  n<tjtdd�� |jdgd� W d   ƒ n1 s 0    Y  d S )	Nr"   r  z2.0.0z Column label\(s\) \['bad_name'\]rU   )rº   Zbad_namerý  z-Column label\(s\) \[np\.str\_\('bad_name'\)\])	r0   rÈ   r   r   rÚ  rW   rX   rÚ   r6   r|  r:   r:   r;   Ú&test_group_subplot_invalid_column_nameÐ	  s    .ÿz9TestDataFramePlots.test_group_subplot_invalid_column_namec                 C   sh   t  d¡t  d¡t  d¡dœ}t|ƒ}tjtdd��  |jddgd� W d   ƒ n1 sZ0    Y  d S )Nr"   r¹   zshould be in only one subplotrU   r  )rº   r¼   rý  r  r|  r:   r:   r;   Ú$test_group_subplot_duplicated_columnÝ	  s    z7TestDataFramePlots.test_group_subplot_duplicated_column)rÇ  r°   r±   c                 C   s`   t  d¡t  d¡dœ}t|ƒ}tjtdd��  |jdg|d� W d   ƒ n1 sR0    Y  d S )Nr"   r  z1When subplots is an iterable, kind must be one ofrU   rú  r  )r8   r  r[  r9   r:   r:   r;   Útest_group_subplot_invalid_kindä	  s    ÿz2TestDataFramePlots.test_group_subplot_invalid_kindz index_name, old_label, new_label)Nr%  Únew)Úoldr  r
  )Nr%  r%  )Nr%  rA   r%  )rZ   r  rˆ   c                 C   sŒ   t ddgddggddgd�}||j_|j|d�}| ¡ |ks@J ‚| ¡ dksPJ ‚|j|||d	�}| ¡ t|ƒkstJ ‚| ¡ t|ƒksˆJ ‚d S )
NrA   r    rh   úType AúType Br½   rç  r%  )r  r`  Úxlabel)r   r.   rÁ   r6   Ú
get_xlabelr�  Ústr)r8   r  Z
index_nameZ	old_labelZ	new_labelr9   rd   r:   r:   r;   Ú(test_xlabel_ylabel_dataframe_single_plotí	  s    z;TestDataFramePlots.test_xlabel_ylabel_dataframe_single_plotzxlabel, ylabel))NN)úX LabelN)NúY Label)r  r  c                 C   st   d}d}t ddgddgg||gd�}|j|||||d�}| ¡ |d u rJ|n|ksTJ ‚| ¡ |d u rf|n|kspJ ‚d S )Nr  r  rA   r    rh   r½   )r  rS   rT   r  r`  )r   r6   r  r�  )r8   r  r  r`  ZxcolZycolr9   rd   r:   r:   r;   Ú'test_xlabel_ylabel_dataframe_plane_plot	
  s    z:TestDataFramePlots.test_xlabel_ylabel_dataframe_plane_plot)FTc                 C   sj   t dgƒj|dddgd�}|jjD ]B}|j ¡ r"| ¡ dks@J ‚| ¡ dksPJ ‚| ¡ d dks"J ‚q"d S )Nr   rX  )r   rj   ró   )r/  r`  rk   rg   )	r   r6   rP  rG   rÒ   Zget_visibler�  r6  Z
get_yticks)r8   r/  Zax_dfrd   r:   r:   r;   Útest_secondary_y
  s    

ÿ
z#TestDataFramePlots.test_secondary_yc                 C   sr   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	 
d
¡�" | ¡ }|j ¡ }W d   ƒ n1 sd0    Y  d S )Nr    r!   r$   r%   r'   r"   r(   r)   r,   F)r   r0   r1   r2   r3   r   r4   r5   r   rÛ   rÜ   r6   r—  )r8   r9   r“   r:   r:   r;   Útest_plot_no_warning)
  s    ýz'TestDataFramePlots.test_plot_no_warning)NNNN)ÎÚ__name__Ú
__module__Ú__qualname__rW   ÚmarkZslowr<   rH   rK   rO   Zxfailr]   re   Zparametrizerp   ry   r{   r   rŒ   rŽ   r•   r4   r§   r¯   r²   r¸   r¾   rÂ   rÇ   rÉ   rÌ   r×   rÞ   rå   rç   rê   rë   rì   rñ   r0   rô   r!  rö   r   r¡   r  r  r	  r  r  r  r  r  r}   r   r(  r-  r.  r1  r4  r7  r;  rA  rB  rJ  rK  rY  r^  r_  rh  rj  r   r¢   ZCategoricalIndexrl  ro  rs  rt  rx  r  ÚparamÚtdZ
skip_if_norƒ  r–  r—  rž  r¤  r¥  r¨  r«  r¯  rµ  r·  rÀ  rÄ  rË  rÑ  rÓ  Úfilterwarningsr   r�   rÚ  rÜ  rÝ  rÞ  rá  rã  rê  rë  rì  rí  rò  ró  rô  rÿ  r   r  rr  r  r  r‡  r    r  r  r$  r(  r/  r3  r   rÒ  Z_common_kindsr7  r8  r<  r>  r?  rD  rE  rF  rL  rM  rO  rQ  ZstdrS  rT  r]  r_  ra  rd  rk  ru  rv  ry  rz  r}  r  r	   rƒ  r„  r…  rÚ   rˆ  rŒ  r�  r‘  r•  r–  r™  r›  rœ  r§  rª  rµ  r¹  rº  r»  Z
_all_kindsrÀ  rÎ  rÐ  rÓ  rÕ  rÖ  rÚ  rÜ  rà  rí  rî  rð  rõ  rø  rù  rû  rÿ  r  r  r  r  r  r	  r  r  r  r  r:   r:   r:   r;   r   7   sn  





	


üþ	


	


ùþ

úþ	ÿ


þþþ

	

	ÿ
ÿ
ÿ
þ
	ÿÿ





	
	
ÿþ

		üþ		




þ
þ
þ
			.ÿ   ú"""ý*ÿ*ÿ*ÿùúþl
üþ	þ	ÿ
þþ"ýþ	,ýþ
	
ýþ


(þþ((þ6úþ	!(($S5
	
ÿþ	
ûþ
þ	
r   c                  C   sb   dd l m}  tj dd¡}|  |d ¡}|  |d ¡}|  |d ¡}|  |d ¡}|||||gfS )Nr   r    rï  )rA   r   r{  r�   )r  r‘   r�   rÂ  rÆ  Zsubplot)r#  r´  Zax_tlZax_llZax_trZax_lrr:   r:   r;   r±  7
  s    r±  )6Ú__doc__r   r   r¾  r†  rp  ra   r¼  Únumpyr0   rW   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr  Zpandas.core.dtypes.apir   Zpandasr¢   r   r   r   r   r	   r
   r   r   r   Zpandas._testingZ_testingrÛ   Zpandas.tests.plotting.commonr   r   r   r   r   r   r   r   r   r   r   r   r   Zpandas.util.versionr   Zpandas.io.formats.printingr   ré  r�   r#  r   r±  r:   r:   r:   r;   Ú<module>   sP   ,<

                    