o
    5c                      @   sR   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 G dd deZdS )    N)	DataFrame
date_range)TestPlotBasec                
   @   s   e Zd Zejjdddd Zdd Zej	dd Z
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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 | }|j}t|d |s?J t|d |sHJ d S )Nr   )LineCollection)Line2D   )xab      r
   r   orangeg?)cyerrlabelr   blue)r   r   axr   )	matplotlib.collectionsr   matplotlib.linesr   r   plot
get_legendlegendHandles
isinstance)selfr   r   dfr   legendresult_handles r   c/var/www/html/gps/gps/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 | }dd |jD }g d}||ks>J d S )Nr	   r   r   )r   r   dg      @Tr   greenr   )r   colorsecondary_yred)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   df2r   r   resultexpectedr   r   r    test_legend_false$   s   z!TestFrameLegend.test_legend_falsec                 C   sD  g 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}|D ]T}|j|dd	}| j||jd
 |j|d|d}| j||jd
 |j|d|d}| j||j|jd
 |j|d|d}t|j|jtt	|j }| j||d
 q:|jddd}| j|g dd
 |jd|d}| j|g dd
 |jddd|d}| j|g d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}| j|g dd
 |jd|d}| j|g dd
 |jd|d}| j|g dd
 |jjdddd}| j|dgd
 |jjdddd|d }| j|dgd
 |jjd!dd"|d#}| j|dd"gd
 |d}
|
jdd$}| j|dgd
 |
jdd%d&}| j|d%gd
 | |j d |
jd'd(|d)}| j|d%d(gd
 |
j dd'gksJ d S )*N)linebarbarhkdeareahistr   r   r   r   columns)r"   ef)ghi)jklTkindr   labelsF)rA   r   r   reverser   )r   r%   )r   	b (right)r   r   r   r0   r;   )rA   r   r%   r   )r   rE   r   r:   z	h (right)r<   z1/1/2014)periods)r7   index)r   rE   r   r:   r;   r<   r   data1)r
   yr   r"   r8   data2)r
   rJ   r   r   r   r:   data3)r
   rJ   r   r   )rJ   LABEL_b)rJ   r   r   LABEL_c)rJ   r   r   )r   nprandomrandr   _check_legend_labelsr7   unionlistreversedr   randnscatter	set_index_check_text_labelsxaxis	get_labeltolist)r   kindsr   r+   df3df4rA   r   r-   inddf5r   r   r    test_df_legend_labels0   s`    
z%TestFrameLegend.test_df_legend_labelsc                 C   s  t g dg dgg dd}| 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 | j|d
 g dd | j|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 | j|d g dd | j|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 | j|d g dd | j|d g dd d S )N)r	   r	   r	   r	   )r   r         )r
   rr:   r   )datar7   r	   r   )nrowsncolsr
   re   r   o)r
   rJ   	linewidthmarkerr$   r   r:   r   )re   r:   r   rB   )ri   r
   ri   expected_markers)r   re   r:   )ri   ri   r
   r   )r:   r   re   )r
   ri   ri   r   pltsubplotsr   rR   _check_legend_marker)r   r   figr   r   r   r    *test_missing_marker_multi_plots_on_same_axr   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	 }| 
|d t tjdd}|jd	|d
}|j	 }| 
|d d|j_|jd|d
}|j	 }| 
|d |jd	|d
}|j	 }| 
|d d S )Nrc   )r   r   r   r   )r
   rJ   r
   rJ   r6   group
individualzgroup,individual   TrF   newF)r   rO   rP   rV   arrayr7   namesr   legend_	get_titlerY   name)r   multir   	leg_titler   r   r   r    test_legend_name   s&   



z TestFrameLegend.test_legend_namerA   r/   r0   r1   r2   )marksr3   r4   c                 C   s:   t tjddg dd}|j|dd}| j|dd d S )Nr   r5   r6   Fr@   )visible)r   rO   rP   rQ   r   rR   )r   rA   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 | j|g dd | j|g dd d S )Nrd   r   ABCr6   r   r
   solid)rJ   rk   	linestyler   ri   dotted)rJ   rk   r   r   r   <rB   )r
   ri   r   rl   )r   rO   rP   rV   r   rR   rq   )r   r   r   r   r   r    test_missing_markers_legend   s   z+TestFrameLegend.test_missing_markers_legendc                 C   sv   t g dg dg dg dd}| j \}}dD ]}|jd|||dd q| j|g d	d
 | j|g dd d S )N)r	   r   r   rc   rv      )r   rc   r	   r   r   rc   )r   r   r   r   rc   r   )r   r   r   XABCr   .)r   r   styler   rB   )r   r   r   rl   rn   )r   r   rr   r   rA   r   r   r    'test_missing_markers_legend_using_style   s   	z7TestFrameLegend.test_missing_markers_legend_using_styleN)__name__
__module____qualname__pytestmarkxfailr!   r.   tdskip_if_no_scipyrb   rs   r   parametrizeparamr   r   r   r   r   r   r    r      s.    

A

r   )numpyrO   r   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   pandas.tests.plotting.commonr   r   r   r   r   r    <module>   s    