U
    NZf	"                     @   s^   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 d dlmZ G dd deZdS )    N)	DataFrame
date_range)TestPlotBase)Versionc                
   @   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 }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|j	tdk r|j
}n|j}t|d |stt|d |std S )Nr   )LineCollection)Line2D   )xab      r   r   Zorangeg?)cyerrlabelr   blue)r   r   axr   3.7)
matplotlibZmatplotlib.collectionsr   Zmatplotlib.linesr	   r   plot
get_legendr   __version__legendHandleslegend_handles
isinstanceAssertionError)selfmplr   r	   dfr   legendZresult_handles r"   Q/tmp/pip-unpacked-wheel-nbcvw55c/pandas/tests/plotting/frame/test_frame_legend.pytest_mixed_yerr   s    zTestFrameLegend.test_mixed_yerrc           	      C   s   dd l }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|jtdk rz|j}n|j}dd |D }d	d
dg}||kstd S )Nr   r
   r   r   )r   r   dg      @Tr   Zgreenr   )r!   colorsecondary_yZred)r!   r&   r   r   c                 S   s   g | ]}|  qS r"   )Z	get_color).0handler"   r"   r#   
<listcomp>7   s     z5TestFrameLegend.test_legend_false.<locals>.<listcomp>)	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_falsec                 C   sr  ddddddg}t tjdddd	d
gd}t tjdddddgd}t tjdddddgd}t tjdddddgd}|D ]}|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|ddd
gd |jd|d}| j|ddd
gd |jddd|d}| j|ddd
dddgd t
d dd!}	t tjdddd	d
g|	d"}t tjdddddg|	d"}t tjdddddg|	d"}|jdd	d}| j|ddd
gd |jd|d}| j|ddd
gd |jd|d}| j|ddd
dddg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sntd S ).Nlinebarbarhkdeareahistr   r   r   r   columnsr%   efghijklTkindr!   labelsF)r@   r!   r   reverse)r!   r'   z	b (right)r!   r   )r@   r!   r'   r   z	h (right)z1/1/2014)Zperiods)r6   indexZdata1)r   yr   Zdata2)r   rF   r!   r   r   Zdata3)r   rF   r   r   )rF   ZLABEL_b)rF   r   ZLABEL_c)rF   r   r   )r   nprandomrandr   _check_legend_labelsr6   unionlistreversedr   randnZscatterZ	set_index_check_text_labelsZxaxisZ	get_labeltolistr   )r   kindsr    r+   Zdf3Zdf4r@   r   r-   indZdf5r"   r"   r#   test_df_legend_labels;   sb      
z%TestFrameLegend.test_df_legend_labelsc                 C   s  t ddddgddddggddddg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 dddgd | j|d dddg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 dddgd | j|d dddg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 dddgd | j|d dddgd d S )Nr
   r         r   rr9   r   )datar6   r   )ZnrowsZncolsr   o)r   rF   Z	linewidthmarkerr&   r   rA   Zexpected_markersr   ZpltZsubplotsr   rJ   _check_legend_marker)r   r    figr   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ddddgtddddg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 )NrT   r   r   r   rF   r5   groupZ
individualzgroup,individual   TrD   newF)r   rG   rH   rN   arrayr6   namesr   Zlegend_Z	get_titlerO   name)r   Zmultir   Z	leg_titler    r"   r"   r#   test_legend_name   s&    "



z TestFrameLegend.test_legend_namer@   r/   r0   r1   r2   )Zmarksr3   r4   c                 C   s<   t tjdddddgd}|j|dd}| j|dd d S )	Nr   r   r   r   r5   Fr?   )Zvisible)r   rG   rH   rI   r   rJ   )r   r@   r    r   r"   r"   r#   test_no_legend   s    zTestFrameLegend.test_no_legendc                 C   s   t tjdddddgd}|jdgddd	}|jdgd
d|d |jdgdd|d | j|dddgd | j|dd
dgd d S )NrU   r   ABCr5   r   Zsolid)rF   rY   	linestylerX   Zdotted)rF   rY   rj   r   <rA   rZ   )r   rG   rH   rN   r   rJ   r\   )r   r    r   r"   r"   r#   test_missing_markers_legend   s    z+TestFrameLegend.test_missing_markers_legendc              
   C   s   t ddddddgddddddgddddddgddddddgd}| j \}}dD ]}|jd	|||d
d qT| j|dddgd | j|d
d
d
gd d S )Nr
   r   r   rT   r`      )rg   rh   ri   XABCrn   .)r   r   stylerg   rh   ri   rA   rZ   r[   )r   r    r]   r   r@   r"   r"   r#   'test_missing_markers_legend_using_style   s    	z7TestFrameLegend.test_missing_markers_legend_using_styleN)__name__
__module____qualname__pytestmarkZxfailr$   r.   tdZskip_if_no_scipyrS   r^   re   Zparametrizeparamrf   rl   rr   r"   r"   r"   r#   r      s,   

@

r   )ZnumpyrG   rv   Zpandas.util._test_decoratorsutilZ_test_decoratorsrx   Zpandasr   r   Zpandas.tests.plotting.commonr   Zpandas.util.versionr   r   r"   r"   r"   r#   <module>   s   