U
    +¿ifÅt  ã                   @   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  m	Z
 ddlZddlmZmZmZ ddlmZ ddlmZmZ ddlmZ ejjZe
jG dd„ deƒƒZdS )	z Test cases for Series.plot é    )Údatetime)ÚchainN)Ú	DataFrameÚSeriesÚ
date_range)ÚTestPlotBaseÚ_check_plot_worksc                	   @   sv  e Z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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*d+g¡d,d-„ ƒZd.d/„ Zejd0d1„ ƒZejd2d3„ ƒZd4d5„ Z d6d7„ Z!d8d9„ Z"d:d;„ Z#d<d=„ Z$d>d?„ Z%d@dA„ Z&dBdC„ Z'dDdE„ Z(dFdG„ Z)dHdI„ Z*dJdK„ Z+dLdM„ Z,dNdO„ Z-dPdQ„ Z.dRdS„ Z/dTdU„ Z0dVdW„ Z1dXdY„ Z2ejj3dZd[d\d]„ ƒZ4ej d^d_d`g¡dadb„ ƒZ5dcdd„ Z6dedf„ Z7ej dgdhdidjdkgdjdidhdlgfdmdndodpgdqdrdsdtgfg¡dudv„ ƒZ8dwdx„ Z9ej dydzd{d|g¡ej d^d_d`d}g¡d~d„ ƒƒZ:ej d€e;j<dldidd‚e;j=dhdƒe;j=didƒgg¡d„d…„ ƒZ>d†S )‡ÚTestSeriesPlotsc                 C   sV   t  | |¡ dd l}| ¡  t ¡ | _d| j_t ¡ | _	d| j	_t 
¡ | _d| j_d S )Nr   ÚtsÚseriesÚiseries)r   Úsetup_methodÚ
matplotlibZ
rcdefaultsÚtmZmakeTimeSeriesr
   ÚnameZmakeStringSeriesr   ZmakePeriodSeriesr   )ÚselfÚmethodÚmpl© r   úT/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/plotting/test_series.pyr      s    


zTestSeriesPlots.setup_methodc                 C   s¨  t | jjdd t | jjdd t | jjdd}| j|dd t | jjdd	d
}| j|dd t | jjdd	d}| j|dd t | jjdd	d}| j|ddd t | jd d… jjƒ t | jjjdd t | jjƒ dD ]}t | jd d… j|d qØt | jd d… jj	ƒ t t
tj d¡ƒjjdd}| j|jd gdgd t | jjd	d}| j|ddd t | jjd	dd}| j|ddd t | jjd	dd}| j|d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)ÚlineÚbarÚbarhÚkdeÚhistÚboxé   ©ÚkindÚblack©Úcolor©Z
facecolors)Úsubplotsé   ©r2   r2   )Úaxes_numÚlayout)éÿÿÿÿr2   )r1   r5   )r2   r6   )r   r
   ÚplotÚ_check_ticks_propsÚ_check_ax_scalesr%   Úarear   r   r&   r   ÚnpÚrandomÚrandnÚ_check_colorsÚpatchesÚ_check_axes_shape)r   ÚaxesÚaxr,   r   r   r   Ú	test_plot.   s0    zTestSeriesPlots.test_plotc                 C   sD   | j  ¡ \}}| jjdd|d}|  |jd¡ | j|dddd d S )NZTest)é   é   )ÚtitleÚfigsizerB   r2   r3   )r4   r5   rG   )Úpltr1   r   r7   Ú_check_text_labelsrF   r@   ©r   Ú_rB   r   r   r   Útest_plot_figsize_and_titleQ   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_cycler2   é   é   ©rB   )rH   ÚrcParamsr1   r   r7   ÚAssertionError)r   ÚkeyÚcolorsrK   rB   r   r   r   Útest_dont_modify_rcParamsX   s
    z)TestSeriesPlots.test_dont_modify_rcParamsc                 C   sà   | j  ¡ \}}| jj|d}| ¡ \}}| ¡ }||d jddd d ksPt‚||d jddd d kspt‚t 	¡  | jjd|d}| ¡ \}}| ¡ }||d jddd d ks¼t‚||d jddd d ksÜt‚d S )NrO   r   F©Úorigr6   T©Úsecondary_yrB   )
rH   r1   r
   r7   Úget_xlimÚ	get_linesÚget_datarQ   r   Úclose)r   ÚfigrB   ÚxminÚxmaxÚlinesr   r   r   Útest_ts_line_lim`   s       z TestSeriesPlots.test_ts_line_limc                 C   s
  | j  ¡ \}}| jjjd|d}| ¡ \}}| ¡ d jddd }||d ksTt‚||d ksdt‚| j	|dd t
 ¡  | j  ¡ \}}| jjjdd|d}| ¡ \}}| ¡ d jddd }||d ksÐt‚||d ksàt‚| j	|d	d t
 ¡  | j ¡ }| d
¡ d¡|_| j  ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ksht‚||d kszt‚| 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#   rB   r   rU   r6   r   T)r#   Zx_compatrB   é   ÚGMTZCET)r#   rX   rB   )rH   r1   r
   r7   r:   rY   rZ   r[   rQ   r8   r   r\   ÚcopyZtz_localizeZ
tz_convertÚindex)r   rK   rB   r^   r_   r$   Ztz_tsr   r   r   Útest_ts_area_limo   sB    
z TestSeriesPlots.test_ts_area_limc                 C   sr   | j jdddd\}\}}t| jƒj|dd t| jƒj|dd |  |¡ ||¡sXt‚|  |¡ ||¡snt‚d S )Nr2   rM   T)Zshareyr:   )rB   r,   )rH   r1   Úabsr
   r7   Z
get_y_axisZjoinedrQ   )r   r]   Ú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 )Nr2   rM   ZLABELT)r   ÚlegendrB   ©Úlabels©rk   rB   ÚNoneÚNAME)rk   r   rB   F)
r   rH   r1   r7   Ú_check_legend_labelsr\   r   Z
get_legendrQ   rk   )r   ÚsrK   rB   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   r7   ÚpytestÚraisesÚ	TypeError)r   rr   Úmsgr   r   r   Útest_boolean¼   s
    zTestSeriesPlots.test_booleanc           	   
   C   s   ddt jdg}t|ƒ}t|tjddd}||f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  ¡ |¡ q2d S )Nr2   rM   rN   é   )Úk©re   r   ©ZdtypeFTr"   )r;   Únanr   r   ZmakeDateIndexr   r7   r`   Ú	get_ydataÚarrayZfloat64Úassert_numpy_array_equalÚdeleteÚdataÚmaskr:   )	r   Úvaluesrr   r
   ÚdrB   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 )Nr2   rM   rN   ÚaÚbÚcr~   z	The IndexF©r   rB   Ú )	r   re   r   rH   r1   r7   Ú
get_xlabelrQ   r%   )r   rr   rK   rB   r   ri   Úlabel2r   r   r   Útest_line_use_index_falseÜ   s    z)TestSeriesPlots.test_line_use_index_falsec              	   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   rB   gñhãˆµøä>g-Cëâ6?gü©ñÒMbP?g{®Gáz„?r%   )r   r,   rB   g!Ñ,åNJ?gÐ„–-?À?r   r2   r&   )r;   r‚   rH   r1   r   r7   r%   r   rƒ   r   Úget_ticklocsr\   r&   r    Zget_ylimZassert_almost_equalrY   )r   rŠ   rK   rB   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 )Nr2   rM   rN   r|   rŒ   r   rŽ   rˆ   r~   Fr   Ú0Ú1Ú2Ú3)r   rH   r1   r7   r%   rI   Úget_xticklabels)r   ÚdfrK   rB   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 )Nr2   rM   rN   r|   ÚredÚ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   r7   r%   r?   rQ   )r   rr   rB   Ú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 )Nr*   rO   r   r   rb   )r   rB   )r   r;   r<   r=   rH   r1   r7   r8   )r   rŸ   rK   rB   rA   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/2000r2   rM   rN   r*   é	   r!   é   é   rO   iÏ  r   z1/1/1999ú1/1/2001rb   r   )Z%pandas.plotting._matplotlib.converterrª   r   r   r;   r<   r=   ÚlenrH   r1   r7   Úconvertr   Zset_xlimrY   rQ   r8   )r   rª   ÚrngÚserrK   rB   Zxpr   r   r   Útest_irregular_datetime&  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~   rO   r   FrU   )r   r;   r€   rH   r1   r7   rY   rZ   Znanminr[   rQ   Znanmax)r   r³   rK   rB   r^   r_   r`   r   r   r   Útest_unsorted_index_xlim3  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 )#Nr2   r*   rŒ   r   rŽ   rˆ   ÚeZYLABEL©re   r   rl   r   ÚrÚg)rS   r0   ÚAÚBÚCÚDÚEÚm)rm   rS   z%.2fé   )rS   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr   )r£   rr   r   r   r   r¥   _  s     z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>rM   r   r|   r6   r~   z&pie plot doesn't allow negative valuesru   )r   r;   r<   Úrandintr   r7   ÚpierI   Útextsre   Ú
get_ylabelrQ   r>   r?   r‡   ÚsumÚlistr   Úfrom_iterableÚzipZget_fontsizerw   rx   Ú
ValueErrorr€   )	r   r   rB   Z
color_argsZcolor_expectedrm   ZpctsZexpected_textsÚtr   r   r   Útest_pie_series?  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 )
Nr2   Trn   rš   r   rœ   r   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_text)r£   Úxr   r   r   r¥   t  s     z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   r;   r€   rH   r1   r7   rÃ   rÄ   rQ   )r   rr   rK   rB   rŠ   r§   r   r   r   Útest_pie_nano  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 
¡  ¡ st‚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 )Nrb   rN   Úabc)ÚcolumnsrÍ   ©r   rO   T)rk   rX   rB   rŒ   r   rŽ   z	x (right)rl   )rB   rk   rX   rW   z	a (right)z	b (right)z	c (right)F)rX   Z
mark_rightrB   )r   r;   r<   r=   rÇ   r   rH   r1   r7   rq   Z	get_yaxisZget_visiblerQ   Zright_axr   r\   Zleft_ax)r   rŸ   rr   rK   rB   rŠ   r   r   r   Útest_df_series_secondary_legendw  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 )Nrb   )r   T)rX   r   )r   r;   r<   r=   r7   Z
get_yscalerQ   )r   Z
input_logyZexpected_scaleÚs1Ús2rh   ri   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 )NrM   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolru   zk--r}   )r   r/   rB   )
r   r;   r<   r=   rH   r1   rw   rx   rÊ   r7   )r   rÍ   rK   rB   rz   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jddd t| jjjd dd t| jjjd t  d¡d t| jjjd|d t| jjjd|d | j 	¡ \}}| jjjdd||d}| j
|d	d
 |  |j ¡ d¡ d S )NiœÿÿÿrÁ   é   Zscott)Ú	bw_methodÚindg      à?T)r   rÙ   rÚ   rB   r   r   ZDensity)r;   Zlinspacer   r
   r7   r'   Úint_ZdensityrH   r1   r9   rI   r   Z	get_label)r   Zsample_pointsrK   rB   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   r7   r'   ÚanyÚisnanr`   Ú	get_xdatarQ   )r   rr   rA   r   r   r   Útest_kde_missing_valsÝ  s    
z%TestSeriesPlots.test_kde_missing_valsc                 C   sj   | j  ¡ \}}| jjjd|d}| j|dd | ¡ }|  || jjg¡ | 	¡ }|  |dgt
|ƒ ¡ d S )NT)r   rB   r   r   r   )rH   r1   r
   r7   r)   r9   rž   rI   r   Zget_yticklabelsr°   )r   rK   rB   ZxlabelsZylabelsr   r   r   Útest_boxplot_seriesæ  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   sv   t tdƒƒ}tjjtjj }|D ]P}| j ¡ \}}|j||d | j 	¡  | j ¡ \}}t
|j|ƒƒ  | j 	¡  q d S )NrN   ©r,   rB   )r   ÚrangeÚplottingÚPlotAccessorÚ_common_kindsÚ_series_kindsrH   r1   r7   r\   Úgetattr)r   rr   Úkindsr,   rK   rB   r   r   r   Útest_kind_both_waysï  s    ÿ
z#TestSeriesPlots.test_kind_both_waysc              
   C   sX   t tdƒƒ}| j ¡ \}}tjjD ]0}d}tjt	|d |j
||d W 5 Q R X q"d S )NÚabcdrt   ru   rå   )r   rÇ   rH   r1   rç   rè   ré   rw   rx   ry   r7   ©r   rr   rK   rB   r,   rz   r   r   r   Útest_invalid_plot_dataü  s    z&TestSeriesPlots.test_invalid_plot_datac                 C   s0   t tdƒtd}tjjD ]}t|j|d qd S )Nr!   r   r+   )r   ræ   Úobjectrç   rè   ré   r   r7   )r   rr   r,   r   r   r   Útest_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              
   C   s\   t ddddgƒ}| j ¡ \}}tjjD ]0}d}tjt|d |j	||d W 5 Q R X q&d S )NrŒ   r   r”   rM   rt   ru   rå   )
r   rH   r1   rç   rè   ré   rw   rx   ry   r7   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 )Nr2   rM   z%invalid_kind is not a valid plot kindru   Zinvalid_kindr+   )r   rw   rx   rÊ   r7   )r   rr   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   r7   )r   Zdr1Zdr2re   r‡   rr   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Ñ   rM   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )Nr2   )Zvertices©r£   Úir   r   r   r¥   '  s     z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>r2   r6   z?Asymmetrical error bars should be provided with the shape \(2, z\)ru   r­   ©rù   )r   r;   Úaranger<   Zrandr7   ZvstackÚcollectionsÚ	get_pathsÚTr‚   Zto_numpyZreshaper   rƒ   r°   rw   rx   rÊ   r\   )r   rr   ÚerrrB   r§   rŠ   rz   r   r   r   Útest_errorbar_asymmetrical   s    $ÿ z*TestSeriesPlots.test_errorbar_asymmetricalc              	   C   sü  t t d¡dd}tj d¡}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 qHt|j|d}| j	|dd
d tdddd}t t d¡|dd}t tj d¡|d}	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Ñ   rM   Úy)re   rÐ   r$   r%   )rù   r,   r   r2   )rú   rù   gš™™™™™É?)rú   rù   r,   )rú   r«   r¯   ÚM)Úfreqr®   r·   r~   rý   r­   Úzzz)r   r;   rþ   r<   r=   r   re   r   r7   Z_check_has_errorbarsÚtolistr   r   Zexternal_error_raisedrÊ   ry   )r   rr   Zs_errZd_errrì   r,   rB   Zixr
   Zts_errZtd_errr   r   r   Útest_errorbar_plot4  s<    
z"TestSeriesPlots.test_errorbar_plotc                 C   s&   t | jjdd t | jj| jd d S )NT)Útable)r   r   r7   ©r   r   r   r   Ú
test_table]  s    zTestSeriesPlots.test_tablec                 C   s&   |   tdddgƒtjjtjj ¡ d S )Nr2   rM   rN   )Z_check_grid_settingsr   rç   rè   rê   ré   r  r   r   r   Útest_series_grid_settingsa  s    þz)TestSeriesPlots.test_series_grid_settingsc                 C   sŽ   ddl m} dD ]x}|d|d}||gks.t‚|d|gd}||gksJt‚|d|d}||gd ksht‚|d|gd}||gd kst‚qd S )Nr   ©Úget_standard_colors)r¸   r¡   Úgreenz#FF0000r2   r.   rN   )Ú!pandas.plotting._matplotlib.styler  rQ   )r   r  rŽ   r§   r   r   r   Útest_standard_colorsh  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  r2   )Z
num_colorsr/   rN   )Zmatplotlib.colorsrS   r  r  ZcnamesrQ   ZColorConverter)r   rS   r  rŽ   r§   r   r   r   Útest_standard_colors_allx  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   sB   | j  ¡ \}}tt d¡d ƒjd|d}| j| ¡ dgd d S )Nr®   r2   r  ©r/   rB   ©Z
linecolors)rH   r1   r   r;   rþ   r7   r>   rZ   rJ   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®   r2   r«   rõ   r~   r  r  r  )	rH   r1   r   r;   rþ   r   r7   r>   rZ   rJ   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õ   r2   é   r~   rN   rO   r  )r   Z_unpack_cyclerrP   r   r   r;   rþ   rH   r1   ræ   r7   r>   rZ   )	r   r   Z
def_colorsre   rr   ZncolorsrK   rB   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 ©ÚPÚ02dr   rû   r   r   r   r¥   ·  s     z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r~   r   rN   r*   r¬   )ÚxticksrB   c                 S   s   g | ]}d |d›‘qS r  r   rû   r   r   r   r¥   º  s     )r   rN   r*   r¬   )	r   r;   rþ   ræ   rH   r1   r7   rI   rž   )r   rr   rK   rB   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­   rM   )r  )
r   ræ   r7   r%   r;   r‚   rÇ   r   rƒ   Z
get_xticks)r   rr   rB   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   r7   )r   r   rr   r   r   r   Útest_custom_business_day_freqÄ  s    
ýþ	z-TestSeriesPlots.test_custom_business_day_freqzGH#24426)Úreasonc                 C   sn   t ddddgƒ}| j ¡ \}}|j|d}|j ¡ }|jddgdd | j ¡ \}}|j ¡ }t ||¡ d S )	Nr2   rM   rN   r|   rO   r   T)Zinplace)	r   rH   r1   r7   r    r–   Zdropr   rƒ   )r   r³   rK   rB   ÚbeforeÚafterr   r   r   Ú%test_plot_accessor_updates_on_inplaceÓ  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer,   r$   r:   c                 C   sT   t ddgƒ}| j ¡ \}}|j||d | ¡ }|d dk s@t‚|d dksPt‚d S )NrM   rN   rå   r   r2   )r   rH   r1   r7   rY   rQ   )r   r,   rr   rK   rB   Ú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   r2   r   )	r   ÚintÚemptyrQ   r7   r°   rZ   râ   r   )r   rŸ   rB   r$   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Ž   rt   ru   )r   rw   rx   ry   r7   )r   rŸ   r   r   r   Útest_plot_no_numeric_dataõ  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexr2   rM   rN   r|   r   r!   rÝ   rØ   rb   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…   re   r%   r+   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 )N)r0  r_   )r1  r   r   r   Ú<lambda>	  ó    z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rR   )r   r7   r  Úsortedr?   rQ   )r   r…   re   r³   rB   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 )Nr2   rM   rr   ZC3)r   r/   r   )r   r7   r`   Ú	get_colorrQ   )r   rr   rB   r   r   r   Útest_style_single_ok  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label)Nr   Únew)Úoldr9  r8  )Nr   r   r%   c                 C   sx   t ddddgƒ}||j_|j|d}| ¡ dks4t‚| ¡ |ksDt‚|j|||d}| ¡ |ksdt‚| ¡ |kstt‚d S )Nr2   rM   rN   r|   r+   r   )r,   ZylabelZxlabel)r   re   r   r7   rÅ   rQ   r‘   )r   r,   Z
index_nameZ	old_labelZ	new_labelr³   rB   r   r   r   Útest_xlabel_ylabel_series  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesre   r½   )r"  rö   r  )Údaysc                 C   s0   d}t ddg|dj|d}| ¡ dks,t‚d S )N)rN   r2   r2   rM   r~   )Zxlim)r   r7   rY   rQ   )r   re   r*  rB   r   r   r   Útest_timedelta_index&  s    	z$TestSeriesPlots.test_timedelta_indexN)?Ú__name__Ú
__module__Ú__qualname__r   rC   rL   rT   ra   rf   rj   rs   r{   r‹   r“   r™   r    r¨   r©   r´   rµ   rÌ   rÎ   rÒ   rw   ÚmarkZparametrizerÖ   r×   ÚtdZskip_if_no_scipyrÜ   rã   rä   rí   rð   rò   ró   rô   rø   r  r	  r  r  r  r  r  r  r  r  r  r%  Zxfailr)  r+  r.  r/  r5  r7  r:  r$  Ztimedelta_rangeZ	Timedeltar<  r   r   r   r   r	      s˜   #'
	!0? ÿ


			)!


þþ
þþþr	   )Ú__doc__r   Ú	itertoolsr   Únumpyr;   rw   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrA  Zpandasr$  r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   r   Zpandas.plottingrç   r@  ZslowZ
pytestmarkZskip_if_no_mplr	   r   r   r   r   Ú<module>   s   