U
    ùQ”iGx  ã                   @   sÖ   d Z ddlmZ ddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlm  mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZ ejd	d
„ ƒZejdd„ ƒZejdd„ ƒZejG dd„ deƒƒZ dS )z Test cases for Series.plot é    )Údatetime)ÚchainN)Úis_platform_linux)Únp_version_gte1p24)Ú	DataFrameÚSeriesÚ
date_rangeÚplotting)ÚTestPlotBaseÚ_check_plot_worksc                   C   s   t jdd�S )NÚts©Úname)ÚtmZmakeTimeSeries© r   r   úE/tmp/pip-unpacked-wheel-58ppya8e/pandas/tests/plotting/test_series.pyr      s    r   c                   C   s   t jdd�S )NÚseriesr   )r   ZmakeStringSeriesr   r   r   r   r      s    r   c                   C   s   t jdd�S )NÚiseriesr   )r   ZmakePeriodSeriesr   r   r   r   r   $   s    r   c                
   @   s˜  e Zd Zejjdd„ ƒZdd„ Zej ddddej	d	e
jd
�ddg¡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d!d"„ Zej d#d$ejd%d&�g¡d'd(„ ƒZd)d*„ ZejjeoÖeƒ d+d,d-�d.d/„ ƒZd0d1„ Zd2d3„ Z d4d5„ Z!d6d7„ Z"d8d9„ Z#d:d;„ Z$d<d=„ Z%d>d?„ Z&ej d@dAdBg¡dCdD„ ƒZ'dEdF„ Z(e
jdGdH„ ƒZ)e
jdIdJ„ ƒZ*ejjdKdL�dMdN„ ƒZ+e
jej de,j-j.e,j-j/ ¡dOdP„ ƒƒZ0ej de,j-j.¡dQdR„ ƒZ1e
jej de,j-j.¡dSdT„ ƒƒZ2ej de,j-j.¡dUdV„ ƒZ3dWdX„ Z4dYdZ„ Z5d[d\„ Z6ejjd]d^„ ƒZ7ejjd_d`„ ƒZ8ejje
jdadb„ ƒƒZ9ej dcdddedfdgg¡dhdi„ ƒZ:djdk„ Z;dldm„ Z<dndo„ Z=dpdq„ Z>drds„ Z?dtdu„ Z@dvdw„ ZAejjdxdL�dydz„ ƒZBej ddd{g¡d|d}„ ƒZCd~d„ ZDd€d�„ ZEej d‚dƒd„d…d%gd…d„dƒd†gfd‡dˆd‰dŠgd‹dŒd�dŽgfg¡d�d�„ ƒZFd‘d’„ ZGej d“d”d•d–g¡ej ddd{dddg¡d—d˜„ ƒƒZHej d#eIjJd†d„d™dš�eIjKdƒd›�eIjKd„d›�gg¡dœd�„ ƒZLd$S )žÚTestSeriesPlotsc                 C   s¼   t |jdd� t |jdd� t |jdd�}| j|dd� t |jdd	d
�}| j|dd� t |jdd	d�}| j|dd� t |jdd	d�}| j|ddd� t |d d… jjƒ t |jjdd� d S )NZfoo)ÚlabelF)Ú	use_indexr   )Úrot©ZxrotÚ.T)ÚstyleÚlogyÚlog©Úyaxis)r   Zlogx)Úxaxis)r   Zloglog)r   r   é
   ©Ústacked)r   ÚplotÚ_check_ticks_propsÚ_check_ax_scalesÚbarÚarea)Úselfr   ÚaxesÚaxr   r   r   Ú	test_plot+   s    zTestSeriesPlots.test_plotc                 C   s   t |jƒ d S ©N©r   r#   )r(   r   r   r   r   Útest_plot_iseries>   s    z!TestSeriesPlots.test_plot_iseriesÚkindÚliner&   ÚbarhÚkde)ZmarksÚhistÚboxc                 C   s   t |d d… j|d� d S )Né   ©r/   r-   )r(   r   r/   r   r   r   Útest_plot_series_kindsA   s    z&TestSeriesPlots.test_plot_series_kindsc                 C   s   t |d d… jjƒ d S )Nr    )r   r#   r1   ©r(   r   r   r   r   Útest_plot_series_barhO   s    z%TestSeriesPlots.test_plot_series_barhc                 C   s8   t ttj d¡ƒjjdd�}| j|jd gdgd� d S )Nr    Zblack©Úcolorr   ©Z
facecolors)	r   r   ÚnpÚrandomÚrandnr#   r&   Ú_check_colorsÚpatches)r(   r*   r   r   r   Útest_plot_series_bar_axR   s    z'TestSeriesPlots.test_plot_series_bar_axc                 C   sb   t |jdd�}| j|ddd� t |jddd�}| j|ddd� t |jddd�}| j|ddd� d S )	NT)Úsubplotsé   ©rD   rD   )Úaxes_numÚlayout)éÿÿÿÿrD   )rC   rG   )rD   rH   )r   r#   Ú_check_axes_shape)r(   r   r*   r   r   r   Útest_plot_6951V   s    zTestSeriesPlots.test_plot_6951c                 C   sB   | j  ¡ \}}|jdd|d�}|  |jd¡ | j|dddd� d S )NZTest)é   é   )ÚtitleÚfigsizer*   rD   rE   )rF   rG   rN   )ÚpltrC   r#   Ú_check_text_labelsrM   rI   )r(   r   Ú_r*   r   r   r   Útest_plot_figsize_and_title`   s    z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sL   d}| j j| }| j  ¡ \}}tdddgƒj|d� || j j| ksHt‚d S )Nzaxes.prop_cyclerD   é   é   ©r*   )rO   ÚrcParamsrC   r   r#   ÚAssertionError)r(   ÚkeyÚcolorsrQ   r*   r   r   r   Útest_dont_modify_rcParamsg   s
    z)TestSeriesPlots.test_dont_modify_rcParamsc                 C   sÜ   | j  ¡ \}}|j|d�}| ¡ \}}| ¡ }||d jdd�d d ksNt‚||d jdd�d d ksnt‚t ¡  |jd|d�}| ¡ \}}| ¡ }||d jdd�d d ks¸t‚||d jdd�d d ksØt‚d S )NrU   r   F©ÚorigrH   T©Úsecondary_yr*   )	rO   rC   r#   Úget_xlimÚ	get_linesÚget_datarW   r   Úclose)r(   r   Úfigr*   ÚxminÚxmaxÚlinesr   r   r   Útest_ts_line_limo   s       z TestSeriesPlots.test_ts_line_limc                 C   s  | j  ¡ \}}|jjd|d�}| ¡ \}}| ¡ d jdd�d }||d ksRt‚||d ksbt‚| j|dd� t	 
¡  | j  ¡ \}}|jjdd|d�}| ¡ \}}| ¡ d jdd�d }||d ksÌt‚||d ksÜt‚| j|d	d� t	 
¡  | ¡ }| d
¡ d¡|_| j  ¡ \}}|jjdd|d�}| ¡ \}}| ¡ d jdd�d }||d k�sbt‚||d k�stt‚| j|dd� t	 
¡  | j  ¡ \}}|jjdd|d�}| ¡ \}}| ¡ d jdd�d }||d k�sàt‚||d k�sòt‚| j|dd� d S )NF)r"   r*   r   r[   rH   r   T)r"   Zx_compatr*   é   ÚGMTZCET)r"   r^   r*   )rO   rC   r#   r'   r_   r`   ra   rW   r$   r   rb   ÚcopyZtz_localizeZ
tz_convertÚindex)r(   r   rQ   r*   rd   re   r0   Ztz_tsr   r   r   Útest_ts_area_lim~   sB    z TestSeriesPlots.test_ts_area_limc                 C   sn   | j jdddd�\}\}}t|ƒj|dd� t|ƒj|dd� |  |¡ ||¡sTt‚|  |¡ ||¡sjt‚d S )NrD   rS   T)Zshareyr'   )r*   r/   )rO   rC   Úabsr#   Z
get_y_axisZjoinedrW   )r(   r   rc   Úax1Úax2r   r   r   Útest_area_sharey_dont_overwrite¥   s
    z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   s:  t ddgƒ}| j ¡ \}}|jdd|d�}| j|dgd� | j ¡  | j ¡ \}}|jd|d�}| j|dgd� | j ¡  d	|_| j ¡ \}}|jd|d�}| j|d	gd� | j ¡  | j ¡ \}}|jdd|d
�}| j|dgd� | j ¡  | j ¡ \}}|jdd|d
�}| ¡ d k�st‚| 	¡  | j|dgd� d S )NrD   rS   ZLABELT)r   Úlegendr*   ©Úlabels©rq   r*   Ú ÚNAME)rq   r   r*   F)
r   rO   rC   r#   Ú_check_legend_labelsrb   r   Z
get_legendrW   rq   )r(   ÚsrQ   r*   r   r   r   Ú
test_label¯   s.    



zTestSeriesPlots.test_labelc              	   C   sH   t dddgƒ}t|jdd� d}tjt|d�� t|jƒ W 5 Q R X d S )NFT)Zinclude_boolúno numeric data to plot©Úmatch)r   r   r#   ÚpytestÚraisesÚ	TypeError)r(   rx   Úmsgr   r   r   Útest_booleanË   s
    zTestSeriesPlots.test_booleanrk   Né   )Úkc              	   C   s  ddt jdg}t||d�}t|jƒ}|jd  ¡ }t jdddgt jd�}t	 
t  |jd¡|¡ t	 
|jt  ddddg¡¡ t jddddgt jd�}t|jdd	�}t	 
|jd  ¡ |¡ t|jjƒ}t	 
|jd  ¡ |¡ t|jjdd	�}t	 
|jd  ¡ |¡ d S )
NrD   rS   rT   ©rk   r   ©ZdtypeFTr!   )r=   Únanr   r   r#   rf   Ú	get_ydataÚarrayZfloat64r   Úassert_numpy_array_equalÚdeleteÚdataÚmaskr'   )r(   rk   ÚvaluesÚdr*   ZmaskedÚexpÚexpectedr   r   r   Útest_line_area_nan_seriesÔ   s    
z)TestSeriesPlots.test_line_area_nan_seriesc                 C   s†   t dddgdddgd�}d|j_| j ¡ \}}|jd	|d
�}| ¡ }|dksPt‚| j ¡ \}}|jjd	|d
�}| ¡ }|dks‚t‚d S )NrD   rS   rT   ÚaÚbÚcr„   z	The IndexF©r   r*   ru   )	r   rk   r   rO   rC   r#   Ú
get_xlabelrW   r&   )r(   rx   rQ   r*   r   ro   Úlabel2r   r   r   Útest_line_use_index_falseç   s    z)TestSeriesPlots.test_line_use_index_falsezWeird rounding problemsF)ÚreasonÚstrictc              	   C   s†  t  ddddddg¡}| j ¡ \}}tddgƒjjd	|d
�}t |j	 
¡ |¡ t ¡  | j ¡ \}}tddgƒjjd	|d
�}t |j 
¡ |¡ t ¡  t  dddddddg¡}| j ¡ \}}tdddgƒjd	d|d�}d}d}| ¡ }t |d |¡ t |d |¡ t |j	 
¡ |¡ t ¡  | j ¡ \}}tdddgƒjd	d|d�}| ¡ }t |d |¡ t |d |¡ t |j 
¡ |¡ d S )Ngš™™™™™¹?ç      ð?g      $@g      Y@g     @�@g     ˆÃ@éÈ   iô  T)r   r*   gñhãˆµøä>g-Cëâ6?gü©ñÒMbP?g{®Gáz„?r&   )r   r/   r*   g!Ñ,åNJ?gÐ„–-?À?r   rD   r1   )r=   rˆ   rO   rC   r   r#   r&   r   r‰   r   Úget_ticklocsrb   r1   r   Zget_ylimZassert_almost_equalr_   )r(   r�   rQ   r*   ZyminÚymaxÚresr   r   r   Útest_bar_logó   s2    zTestSeriesPlots.test_bar_logc                 C   sV   t ddddgddddgd	�}| j ¡ \}}|jjd
|d�}|  | ¡ ddddg¡ d S )NrD   rS   rT   r‚   r’   r“   r”   rŽ   r„   Fr•   Ú0Ú1Ú2Ú3)r   rO   rC   r#   r&   rP   Úget_xticklabels)r(   ÚdfrQ   r*   r   r   r   Útest_bar_ignore_index  s    z%TestSeriesPlots.test_bar_ignore_indexc                 C   sR   t ddddgƒ}|jjddddgd�}dd	„ |jD ƒ}d
ddd
g}||ksNt‚d S )NrD   rS   rT   r‚   ÚredZbluer:   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_facecolor)Ú.0Úpr   r   r   Ú
<listcomp>"  s     z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)r›   ç        r¬   r›   )r¬   r¬   r›   r›   )r   r#   r&   rA   rW   )r(   rx   r*   Úresultr�   r   r   r   Útest_bar_user_colors  s    üz$TestSeriesPlots.test_bar_user_colorsc                 C   sh   t tj dd¡ƒ}| j ¡ \}}|j|d�}| j|dd� | j ¡ \}}|jd|d�}| j|dd� d S )Nr5   rU   r   r   rh   )r   r*   )r   r=   r>   r?   rO   rC   r#   r$   )r(   r¦   rQ   r*   r)   r   r   r   Útest_rotation+  s    zTestSeriesPlots.test_rotationc              
   C   s¨   ddl m} tddƒ}|dddddd	d
ddg	 }ttj t|ƒ¡|ƒ}| j 	¡ \}}|j
|d�}| tdddƒd|¡}| dd¡ || ¡ d ks–t‚| j|dd� d S )Nr   )ÚDatetimeConverterú1/1/2000z3/1/2000rD   rS   rT   r5   é	   r    é   é   rU   iÏ  ru   z1/1/1999ú1/1/2001rh   r   )Z%pandas.plotting._matplotlib.converterr°   r   r   r=   r>   r?   ÚlenrO   rC   r#   Úconvertr   Zset_xlimr_   rW   r$   )r(   r°   ÚrngÚserrQ   r*   Zxpr   r   r   Útest_irregular_datetime6  s    
z'TestSeriesPlots.test_irregular_datetimec              	   C   s¢   t ddtjddddgddddtjddgd�}| j ¡ \}}|j|d	�}| ¡ \}}| ¡ }|t |d
 j	dd�d
 ¡ks|t
‚|t |d
 j	dd�d
 ¡ksžt
‚d S )Nr¬   r›   g      @g      @g      @g      @g       @r„   rU   r   Fr[   )r   r=   r†   rO   rC   r#   r_   r`   Znanminra   rW   Znanmax)r(   r¹   rQ   r*   rd   re   rf   r   r   r   Útest_unsorted_index_xlimC  s    þ"z(TestSeriesPlots.test_unsorted_index_xlimc           	   	   C   sð  t tj dd¡dddddgdd	�}t|jjƒ}|  |j|j	¡ | 
¡ dksNt‚t|jjd d
�}|  |jdgd ¡ dddg}t|jj|d�}dddddg}| j|j|d� dddddg}dddddg}t|jj||d�}|  |j|¡ | j|j|d� t|jj|ddd�}dd„ |j| ¡  D ƒ}tt t|j	|ƒ¡ƒ}|  |j|¡ |jD ]}| ¡ dk�sLt‚�qLt dddddgdddddgd �}tjtd!d"�� |j ¡  W 5 Q R X t ddtjdgddddgdd	�}t|jjƒ}|  |jddddg¡ d S )#NrD   r5   r’   r“   r”   rŽ   ÚeZYLABEL©rk   r   rr   ru   ÚrÚg©rY   r<   ÚAÚBÚCÚDÚEÚm)rs   rY   z%.2fé   )rY   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr   )r©   rx   r   r   r   r«   o  s     z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>rS   r   r‚   rH   r„   z&pie plot doesn't allow negative valuesr{   )r   r=   r>   Úrandintr   r#   ÚpierP   Útextsrk   Ú
get_ylabelrW   r@   rA   r�   ÚsumÚlistr   Úfrom_iterableÚzipZget_fontsizer}   r~   Ú
ValueErrorr†   )	r(   r   r*   Z
color_argsZcolor_expectedrs   ZpctsZexpected_textsÚtr   r   r   Útest_pie_seriesO  sH      ÿ
   ÿ
  zTestSeriesPlots.test_pie_seriesc                 C   s\   t dtjddgƒ}| j ¡ \}}|jjd|d�}ddddg}dd	„ |jD ƒ}||ksXt‚d S )
NrD   Trt   r¡   ru   r£   r¤   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_text)r©   Úxr   r   r   r«   „  s     z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   r=   r†   rO   rC   r#   rÊ   rË   rW   )r(   rx   rQ   r*   r�   r­   r   r   r   Útest_pie_nan  s    zTestSeriesPlots.test_pie_nanc                 C   sf  t tj dd¡tdƒd�}ttj d¡dd�}| j ¡ \}}|j|d�}|jdd|d	� | j	|d
dddgd� | 
¡  ¡ s~t‚|j 
¡  ¡ s�t‚t ¡  | j ¡ \}}|j|d�}|j|ddd� | j	|d
dddgd� | 
¡  ¡ sèt‚|j 
¡  ¡ sút‚t ¡  | j ¡ \}}|jd|d�}|jdd|d	� ddddg}| j	|j|d� |j 
¡  ¡ �r^t‚| 
¡  ¡ �spt‚t ¡  | j ¡ \}}|jd|d�}|j|ddd� ddddg}|  	|j|¡ |j 
¡  ¡ �rÒt‚| 
¡  ¡ �sät‚t ¡  | j ¡ \}}|jdd|d�}|j|ddd� d
dddg}|  	|j|¡ |j 
¡  ¡ �rHt‚| 
¡  ¡ �sZt‚t ¡  d S )Nrh   rT   Úabc)ÚcolumnsrÔ   r   rU   T)rq   r^   r*   r’   r“   r”   z	x (right)rr   )r*   rq   r^   r]   z	a (right)z	b (right)z	c (right)F)r^   Z
mark_rightr*   )r   r=   r>   r?   rÎ   r   rO   rC   r#   rw   Z	get_yaxisZget_visiblerW   Zright_axr   rb   Zleft_ax)r(   r¦   rx   rQ   r*   r�   r   r   r   Útest_df_series_secondary_legend‡  sP    z/TestSeriesPlots.test_df_series_secondary_legendzinput_logy, expected_scale)Tr   )ÚsymZsymlogc                 C   s^   t tj d¡ƒ}t tj d¡ƒ}|j|d�}|jd|d�}| ¡ |ksJt‚| ¡ |ksZt‚d S )Nrh   )r   T)r^   r   )r   r=   r>   r?   r#   Z
get_yscalerW   )r(   Z
input_logyZexpected_scaleÚs1Ús2rn   ro   r   r   r   Útest_secondary_logyÆ  s    z#TestSeriesPlots.test_secondary_logyc              	   C   sP   t tj d¡ƒ}| j ¡ \}}d}tjt|d�� |j	dd|d� W 5 Q R X d S )NrS   z�Cannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolr{   zk--rƒ   )r   r;   r*   )
r   r=   r>   r?   rO   rC   r}   r~   rÑ   r#   )r(   rÔ   rQ   r*   r€   r   r   r   Ú)test_plot_fails_with_dupe_color_and_styleÕ  s    ÿz9TestSeriesPlots.test_plot_fails_with_dupe_color_and_stylec                 C   s´   t  ddd¡}t|jjddd� t|jjd dd� t|jjd t  d¡d� t|jjd|d� t|jjd|d� | j ¡ \}}|jjdd||d�}| j	|d	d
� |  
|j ¡ d¡ d S )NiœÿÿÿrÈ   é   Zscott)Ú	bw_methodÚindg      à?T)r   rß   rà   r*   r   r   ZDensity)r=   Zlinspacer   r#   r2   Úint_ZdensityrO   rC   r%   rP   r   Z	get_label)r(   r   Zsample_pointsrQ   r*   r   r   r   Útest_kde_kwargsà  s    zTestSeriesPlots.test_kde_kwargsc                 C   sJ   t tjjdd�ƒ}tj|d< t|jjƒ}tt 	|j
d  ¡ ¡ ƒsFt‚d S )Né2   )Úsizer   )r   r=   r>   Úuniformr†   r   r#   r2   ÚanyÚisnanrf   Ú	get_xdatarW   )r(   rx   r)   r   r   r   Útest_kde_missing_valsí  s    
z%TestSeriesPlots.test_kde_missing_valszApi changed in 3.6.0)r™   c                 C   sf   | j  ¡ \}}|jjd|d�}| j|dd� | ¡ }|  ||jg¡ | ¡ }|  |dgt	|ƒ ¡ d S )NT)r   r*   r   r   ru   )
rO   rC   r#   r4   r%   r¥   rP   r   Zget_yticklabelsr¶   )r(   r   rQ   r*   ZxlabelsZylabelsr   r   r   Útest_boxplot_seriesö  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   s\   t tdƒƒ}| j ¡ \}}|j||d� | j ¡  | j ¡ \}}t|j|ƒƒ  | j ¡  d S )NrT   ©r/   r*   )r   ÚrangerO   rC   r#   rb   Úgetattr)r(   r/   rx   rQ   r*   r   r   r   Útest_kind_both_ways   s    
z#TestSeriesPlots.test_kind_both_waysc              	   C   sJ   t tdƒƒ}| j ¡ \}}d}tjt|d�� |j||d� W 5 Q R X d S )NZabcdrz   r{   rë   )r   rÎ   rO   rC   r}   r~   r   r#   ©r(   r/   rx   rQ   r*   r€   r   r   r   Útest_invalid_plot_data  s
    z&TestSeriesPlots.test_invalid_plot_datac                 C   s"   t tdƒtd�}t|j|d� d S )Nr    r…   r6   )r   rì   Úobjectr   r#   )r(   r/   rx   r   r   r   Útest_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              	   C   sN   t ddddgƒ}| j ¡ \}}d}tjt|d�� |j||d� W 5 Q R X d S )Nr’   r“   r›   rS   rz   r{   rë   )r   rO   rC   r}   r~   r   r#   rï   r   r   r   Ú test_partially_invalid_plot_data  s
    z0TestSeriesPlots.test_partially_invalid_plot_datac              	   C   s6   t ddgƒ}tjtdd�� |jdd� W 5 Q R X d S )NrD   rS   z%invalid_kind is not a valid plot kindr{   Zinvalid_kindr6   )r   r}   r~   rÑ   r#   )r(   rx   r   r   r   Útest_invalid_kind$  s    z!TestSeriesPlots.test_invalid_kindc                 C   sJ   t ddd�}t ddd�}| |¡}tj |j¡}t||d�}t|jƒ d S )Nz1/1/2009r‚   ©Úperiodsz1/2/2009r„   )	r   Úappendr=   r>   r?   rä   r   r   r#   )r(   Zdr1Zdr2rk   r�   rx   r   r   r   Útest_dup_datetime_index_plot)  s    
z,TestSeriesPlots.test_dup_datetime_index_plotc              	   C   sÈ   t t d¡dd�}tj dd¡}|j||d�}t dd„ |jd  ¡ D ƒ¡}|j	t 
d	dg¡ | ¡  d	d¡ }t ||¡ d
t|ƒ› d�}tjt|d�� |jtj dd¡d� W 5 Q R X t ¡  d S )Nr    rÔ   r   rS   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )NrD   )Zvertices©r©   Úir   r   r   r«   8  s     z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rD   rH   z?Asymmetrical error bars should be provided with the shape \(2, z\)r{   r³   ©rù   )r   r=   Úaranger>   Zrandr#   ZvstackÚcollectionsÚ	get_pathsÚTrˆ   Zto_numpyZreshaper   r‰   r¶   r}   r~   rÑ   rb   )r(   rx   Úerrr*   r­   r�   r€   r   r   r   Útest_errorbar_asymmetrical1  s    $ÿ z*TestSeriesPlots.test_errorbar_asymmetricalc              	   C   s  t t d¡dd�}t tj d¡¡}tt tj dd¡¡|jddgd�}ddg}|D ]®}t|j	t |ƒ|d	�}| j
|d
dd� t|j	||d	�}| j
|d
dd� t|j	| ¡ |d	�}| j
|d
dd� t|j	||d	�}| j
|d
dd� t|j	dd|d�}| j
|ddd� qTt|j	|d�}| j
|dd
d� tdddd�}t t d¡|dd�}t t tj d¡¡|d�}	tt tj dd¡¡|ddgd�}
t|j	|	d�}| j
|d
dd� t|j	|
d�}| j
|d
dd� t t¡� |j	t d¡d� W 5 Q R X dgd }t t¡� |j	|d� W 5 Q R X d S )Nr    rÔ   r   rS   Úy)rk   r×   r0   r&   )rù   r/   r   rD   )rú   rù   gš™™™™™É?)rú   rù   r/   )rú   r±   rµ   ÚM)Úfreqr´   r½   r„   rý   r³   Zzzz)r   r=   rþ   rm   r>   r?   r   rk   r   r#   Z_check_has_errorbarsÚtolistr   r   Zexternal_error_raisedrÑ   r   )r(   rx   Zs_errZd_errÚkindsr/   r*   Úixr   Zts_errZtd_errr   r   r   Útest_errorbar_plotE  sD      ÿ"
z"TestSeriesPlots.test_errorbar_plotc                 C   s    t |jdd� t |j|d� d S )NT)Útabler-   r8   r   r   r   Ú
test_tablep  s    zTestSeriesPlots.test_tablec                 C   s&   |   tdddgƒtjjtjj ¡ d S )NrD   rS   rT   )Z_check_grid_settingsr   r	   ÚPlotAccessorÚ_series_kindsÚ_common_kinds)r(   r   r   r   Útest_series_grid_settingsu  s    þz)TestSeriesPlots.test_series_grid_settingsr”   r¾   r¨   Úgreenz#FF0000c                 C   s„   ddl m} |d|d�}||gks&t‚|d|gd�}||gksBt‚|d|d�}||gd ks`t‚|d|gd�}||gd ks€t‚d S )Nr   ©Úget_standard_colorsrD   r:   rT   )Ú!pandas.plotting._matplotlib.styler  rW   )r(   r”   r  r­   r   r   r   Útest_standard_colors~  s    z$TestSeriesPlots.test_standard_colorsc                 C   s  ddl m} ddlm} |jD ]x}|d|d�}||gks<t‚|d|gd�}||gksXt‚|d|d�}||gd ksvt‚|d|gd�}||gd kst‚q|jjD ]x}|d|d�}||gks¾t‚|d|gd�}||gksÚt‚|d|d�}||gd ksøt‚|d|gd�}||gd ks t‚q d S )Nr   rÀ   r  rD   )Z
num_colorsr;   rT   )Ú
matplotlibrY   r  r  ZcnamesrW   ZColorConverter)r(   rY   r  r”   r­   r   r   r   Útest_standard_colors_allŽ  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   sB   | j  ¡ \}}tt d¡d ƒjd|d�}| j| ¡ dgd� d S )Nr´   rD   r  ©r;   r*   ©Z
linecolors)rO   rC   r   r=   rþ   r#   r@   r`   ©r(   rQ   r*   r   r   r   Útest_series_plot_color_kwargs¯  s    z-TestSeriesPlots.test_series_plot_color_kwargsc                 C   sN   | j  ¡ \}}tt d¡d tddd�d�jd|d�}| j| ¡ dgd� d S )	Nr´   rD   r±   rõ   r„   r  r  r  )	rO   rC   r   r=   rþ   r   r#   r@   r`   r  r   r   r   Ú"test_time_series_plot_color_kwargsµ  s     ÿz2TestSeriesPlots.test_time_series_plot_color_kwargsc           	      C   s~   dd l }|  |j¡}tddd�}tt dd¡|d�}d}| j ¡ \}}t	|ƒD ]}|j
|d	�}qN| j| ¡ |d |… d
� d S )Nr   r±   r´   rõ   rD   é   r„   rT   rU   r  )r  Z_unpack_cyclerrV   r   r   r=   rþ   rO   rC   rì   r#   r@   r`   )	r(   ZmplZ
def_colorsrk   rx   ZncolorsrQ   r*   rü   r   r   r   Ú-test_time_series_plot_color_with_empty_kwargs½  s    z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   sf   t t d¡dd„ tdƒD ƒd�}| j ¡ \}}|jddddg|d	�}d
d„ dD ƒ}|  | ¡ |¡ d S )Nr    c                 S   s   g | ]}d |d›�‘qS ©ÚPZ02dr   rû   r   r   r   r«   Í  s     z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r„   r   rT   r5   r²   )Úxticksr*   c                 S   s   g | ]}d |d›�‘qS r  r   rû   r   r   r   r«   Ð  s     )r   rT   r5   r²   )	r   r=   rþ   rì   rO   rC   r#   rP   r¥   )r(   rx   rQ   r*   r�   r   r   r   Útest_xticklabelsË  s
     z TestSeriesPlots.test_xticklabelsc                 C   s^   t tdƒdd„ tdƒD ƒd�}|jjtdddƒd�}t ttdddƒƒ¡}t || 	¡ ¡ d S )	Nr    c                 S   s   g | ]}d |d›�‘qS r  r   rû   r   r   r   r«   Õ  s     z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r„   r   r³   rS   )r!  )
r   rì   r#   r&   r=   rˆ   rÎ   r   r‰   Z
get_xticks)r(   rx   r*   r�   r   r   r   Útest_xtick_barPlotÓ  s    z"TestSeriesPlots.test_xtick_barPlotc                 C   s@   ddl m} ttddƒtjdd|dgd�d	�d
�}t|jƒ d S )Nr   )ÚCustomBusinessDayrÈ   éy   z
2014-05-01z
2014-06-01z
2014-05-26)Zholidays)ÚstartÚendr  r„   )Zpandas.tseries.offsetsr$  r   rì   ÚpdZbdate_ranger   r#   )r(   r$  rx   r   r   r   Útest_custom_business_day_freqÚ  s    
ýþ	z-TestSeriesPlots.test_custom_business_day_freqziGH#24426, see also github.com/pandas-dev/pandas/commit/ef1bd69fa42bbed5d09dd17f08c44fc8bfc2b685#r61470674c                 C   sn   t ddddgƒ}| j ¡ \}}|j|d�}|j ¡ }|jddgdd� | j ¡ \}}|j ¡ }t ||¡ d S )	NrD   rS   rT   r‚   rU   r   T)Zinplace)	r   rO   rC   r#   r   r�   Zdropr   r‰   )r(   r¹   rQ   r*   ÚbeforeÚafterr   r   r   Ú%test_plot_accessor_updates_on_inplaceé  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer'   c                 C   sT   t ddgƒ}| j ¡ \}}|j||d� | ¡ }|d dk s@t‚|d dksPt‚d S )NrS   rT   rë   r   rD   )r   rO   rC   r#   r_   rW   )r(   r/   rx   rQ   r*   Úxlimsr   r   r   Útest_plot_xlim_for_seriesù  s    z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td�}|jst‚| ¡ }t| ¡ ƒdks0t‚| ¡ d }t| ¡ ƒdksPt‚t| ¡ ƒdksdt‚d S )Nr…   rD   r   )	r   ÚintÚemptyrW   r#   r¶   r`   rè   r‡   )r(   r¦   r*   r0   r   r   r   Útest_plot_no_rows  s    

z!TestSeriesPlots.test_plot_no_rowsc              	   C   s4   t dddgƒ}tjtdd�� | ¡  W 5 Q R X d S )Nr’   r“   r”   rz   r{   )r   r}   r~   r   r#   )r(   r¦   r   r   r   Útest_plot_no_numeric_data  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexrD   rS   rT   r   r    rã   rÞ   rh   iv  i€  i¼  iž  c                 C   sL   t ||d�}|jdd�}| ¡ }dd„ t|jdd„ d�D ƒ}||ksHt‚d S )	N)r‹   rk   r&   r6   c                 S   s   g | ]}|  ¡ j‘qS r   )Úget_bboxrž   )r©   Úpatchr   r   r   r«   !  s   ÿz3TestSeriesPlots.test_plot_order.<locals>.<listcomp>c                 S   s
   |   ¡ jS r,   )r3  re   )r4  r   r   r   Ú<lambda>#  ó    z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rX   )r   r#   r  ÚsortedrA   rW   )r(   r‹   rk   r¹   r*   r�   r­   r   r   r   Útest_plot_order  s    	þzTestSeriesPlots.test_plot_orderc                 C   s4   t ddgƒ}|jddd�}|jd  ¡ dks0t‚d S )NrD   rS   rx   ZC3)r   r;   r   )r   r#   rf   Z	get_colorrW   )r(   rx   r*   r   r   r   Útest_style_single_ok'  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label)Nru   Únew)Úoldr;  r:  )Nru   ru   c                 C   sÌ   t ddddgƒ}||j_|j|d�}|dkrN| ¡ dks<t‚| ¡ |ks˜t‚nJ|dkrx| ¡ dksft‚| ¡ d	ks˜t‚n | ¡ dksˆt‚| ¡ |ks˜t‚|j|||d
�}| ¡ |ks¸t‚| ¡ |ksÈt‚d S )NrD   rS   rT   r‚   r6   r1   ru   r3   Z	Frequency)r/   ZylabelZxlabel)r   rk   r   r#   r–   rW   rÌ   )r(   r/   Z
index_nameZ	old_labelZ	new_labelr¹   r*   r   r   r   Útest_xlabel_ylabel_series,  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesrÄ   )r&  rö   r  )Údaysc                 C   s0   d}t ddg|d�j|d�}| ¡ dks,t‚d S )N)rT   rD   rD   rS   r„   )Zxlim)r   r#   r_   rW   )r(   rk   r-  r*   r   r   r   Útest_timedelta_indexG  s    	z$TestSeriesPlots.test_timedelta_index)MÚ__name__Ú
__module__Ú__qualname__r}   ÚmarkZslowr+   r.   ZparametrizeÚparamÚtdZskip_if_no_scipyr7   r9   rB   rJ   rR   rZ   rg   rl   rp   ry   r�   r   ZmakeDateIndexr‘   r˜   Zxfailr   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  r  r  r  r"  r#  r)  r,  r.  r1  r2  r8  r9  r<  r(  Ztimedelta_rangeZ	Timedeltar>  r   r   r   r   r   )   sä   
úþ

'
	
ý
!0? ÿ



	þ	


*

!ÿ


þþ
þþþr   )!Ú__doc__r   Ú	itertoolsr   Znumpyr=   r}   Zpandas.compatr   Zpandas.compat.numpyr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrD  Zpandasr(  r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr
   r   Zfixturer   r   r   Zskip_if_no_mplr   r   r   r   r   Ú<module>   s&   


