o
    %j(                     @   sn   d dl Zd dlZd dlm  mZ d dlmZm	Z	 d dl
mZmZmZ d dlmZ edZG dd dZdS )    N)	DataFrame
date_range)_check_legend_labels_check_legend_marker_check_text_labels)VersionZ
matplotlibc                   @   s   e Zd Zejjdddd Zdd Zejdg d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dejdeddddgdd  Zd!d" Zd#d$ Zd%S )&TestFrameLegendzLOpen bug in matplotlib https://github.com/matplotlib/matplotlib/issues/11357)reasonc                 C   s   ddl m} ddlm} tddddddddg}|jdd	d
dd
d}|jdddd |dd | }ttj	tdk r@|j
}n|j}t|d |sLJ t|d |sUJ d S )Nr   )LineCollection)Line2D   )xab      r   r   Zorangeg?)cyerrlabelr   blue)r   r   axr   3.7)Zmatplotlib.collectionsr
   Zmatplotlib.linesr   r   plot
get_legendr   mpl__version__legendHandleslegend_handles
isinstance)selfr
   r   dfr   legendZresult_handles r"   n/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/plotting/frame/test_frame_legend.pytest_mixed_yerr   s   zTestFrameLegend.test_mixed_yerrc                 C   s   t ddgddgd}t dddgi}|jddd	dd
d}|jdddi|d | }ttjtdk r9|j}n|j}dd |D }g d}||ksMJ d S )Nr   r   r   )r   r   dg      @Tr   greenr   )r!   colorsecondary_yred)r!   r'   r   r   c                 S   s   g | ]}|  qS r"   )	get_color).0handler"   r"   r#   
<listcomp>:   s    z5TestFrameLegend.test_legend_false.<locals>.<listcomp>)r   r&   r)   )r   r   r   r   r   r   r   r   )r   r    df2r   r!   Zhandlesresultexpectedr"   r"   r#   test_legend_false.   s   z!TestFrameLegend.test_legend_falsekind)linebarbarhkdeareahistc                 C   s"  t d ttjddg dd}ttjddg dd}ttjddg dd}ttjddg dd}|j|d	d
}t||jd |j|d|d}t||jd |j|d	|d}t||j	|jd |j|d|d}t
|j	|jt
t|j }t||d d S )Nscipyr   r   r   r   r   r   columnsr%   efghi)jklTr2   r!   labelsF)r2   r!   r   reverse)pytestimportorskipr   nprandomdefault_rngr   r   r=   unionlistreversed)r   r2   r    r.   df3Zdf4r   r0   r"   r"   r#   test_df_legend_labels>   s(   
 z%TestFrameLegend.test_df_legend_labelsc                 C   s   t d ttjddg dd}ttjddg dd}ttjddg dd}|jdd	d
}t|g dd |jd|d}t|g dd |jddd|d}t|g dd d S )Nr9   r   r:   r;   r<   r>   rA   Tr   r!   r(   r   	b (right)r   rI   Fr!   r   r4   rC   )r2   r!   r(   r   )r   rX   r   rB   z	h (right)rD   )rL   rM   r   rN   rO   rP   r   r   )r   r    r.   rT   r   r"   r"   r#   !test_df_legend_labels_secondary_yY   s   
z1TestFrameLegend.test_df_legend_labels_secondary_yc                 C   s   t d tddd}ttjddg d|d}ttjddg d	|d}ttjddg d
|d}|jddd}t	|g dd |jd|d}t	|g dd |jd|d}t	|g dd d S )Nr9   1/1/2014r   Zperiodsr   r:   r;   r=   indexr>   rA   Tr   rV   rW   rI   FrY   )r   rX   r   rB   rC   rD   )
rL   rM   r   r   rN   rO   rP   standard_normalr   r   r   indr    r.   rT   r   r"   r"   r#   !test_df_legend_labels_time_seriesj   s.   
z1TestFrameLegend.test_df_legend_labels_time_seriesc                 C   s   t d tddd}ttjddg d|d}ttjddg d	|d}ttjddg d
|d}|jj	dddd}t
|dgd |jj	dddd|d}t
|dgd |jj	ddd|d}t
|ddgd d S )Nr9   r[   r   r\   r   r:   r;   r]   r>   rA   r   r   Zdata1)r   yr   rI   r%   r?   FZdata2)r   rc   r!   r   r   rB   rC   Zdata3)r   rc   r   r   )rL   rM   r   r   rN   rO   rP   r_   r   Zscatterr   r`   r"   r"   r#   )test_df_legend_labels_time_series_scatter   s.   
z9TestFrameLegend.test_df_legend_labels_time_series_scatterc                 C   s   t d tddd}ttjddg d|d}|d	}|j	d
d}t
|d
gd |j	d
dd}t
|dgd t|j d	 |j	dd|d}t
|ddgd |j d
dgks^J d S )Nr9   r[   r   r\   r   r:   r;   r]   r   r   )rc   rI   ZLABEL_b)rc   r   r   ZLABEL_c)rc   r   r   )rL   rM   r   r   rN   rO   rP   r_   Z	set_indexr   r   r   ZxaxisZ	get_labelr=   tolist)r   ra   r    Zdf5r   r"   r"   r#   +test_df_legend_labels_time_series_no_mutate   s    

z;TestFrameLegend.test_df_legend_labels_time_series_no_mutatec                 C   s  t g dg dgg dd}tjjddd\}}|jdd	d
dd	|d
 d |jddddd|d
 d |jddddd|d
 d t|d
 g dd t|d
 g dd |jddddd|d d |jdd	d
dd	|d d |jddddd|d d t|d g dd t|d g dd |jddddd|d d |jddddd|d d |jdd	d
dd	|d d t|d g dd t|d g dd d S )N)r   r   r   r   )r   r         )r   rrB   r   )datar=   r   r   )ZnrowsZncolsr   ri   r   o)r   rc   Z	linewidthmarkerr'   r   rB   r   )ri   rB   r   rI   )rk   r   rk   Zexpected_markers)r   ri   rB   )rk   rk   r   r   )rB   r   ri   )r   rk   rk   r   r   ZpyplotZsubplotsr   r   r   )r   r    _r   r"   r"   r#   *test_missing_marker_multi_plots_on_same_ax   s"   z:TestFrameLegend.test_missing_marker_multi_plots_on_same_axc                 C   s   t tjddtg dtg dgd}ddg|j_| }|j	
 }t|d t tjdd	}|jd
|d}|j	
 }t|d d|j_|jd|d}|j	
 }t|d |jd
|d}|j	
 }t|d d S )Nr   )rg   rg   )r   r   r   r   )r   rc   r   rc   r<   groupZ
individualzgroup,individual)   rr   TrY   newF)r   rN   rO   rP   r_   arrayr=   namesr   Zlegend_Z	get_titler   name)r   multir   Z	leg_titler    r"   r"   r#   test_legend_name   s&   






z TestFrameLegend.test_legend_namer3   r4   r5   r6   r9   )Zmarksr7   r8   c                 C   s<   t tjddg dd}|j|dd}t|dd d S )Nr   r:   r;   r<   FrH   )visible)r   rN   rO   rP   r   r   )r   r2   r    r   r"   r"   r#   test_no_legend   s   zTestFrameLegend.test_no_legendc                 C   s|   t tjddg dd}|jdgddd}|jd	gd
d|d |jdgdd|d t|g dd t|g dd d S )Nr   )rh   r   ABCr<   r|   r   Zsolid)rc   rl   	linestyler}   rk   Zdotted)rc   rl   r   r   r~   <rI   )r   rk   r   rm   )r   rN   rO   rP   r_   r   r   r   )r   r    r   r"   r"   r#   test_missing_markers_legend   s   z+TestFrameLegend.test_missing_markers_legendc                 C   sr   t g dg dg dg dd}tj \}}dD ]}|jd|||dd qt|g d	d
 t|g dd d S )N)r   r   r   rg   rr      )r   rg   r   r   r   rg   )r   r   r   r   rg   r   )r|   r}   r~   XABCr   .)r   r   styler{   rI   )r   r   r   rm   rn   )r   r    ro   r   r2   r"   r"   r#   'test_missing_markers_legend_using_style   s   	z7TestFrameLegend.test_missing_markers_legend_using_styleN)__name__
__module____qualname__rL   markZxfailr$   r1   ZparametrizerU   rZ   rb   rd   rf   rp   rx   paramtdZ
skip_if_norz   r   r   r"   r"   r"   r#   r      s6    


r   )numpyrN   rL   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   Zpandas.tests.plotting.commonr   r   r   Zpandas.util.versionr   rM   r   r   r"   r"   r"   r#   <module>   s    
