o
    jR                  	   @   sZ  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dlZ	d dl
mZ d dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ d dlm Z d dlm Z! d dl"m#Z# d dl$m%Z& d dlm'Z' d dl(m)Z) d	d
 Z*dd Z+edgdddd Z,edgdddd Z-edgdd Z.dd Z/dd Z0edgdddd Z1edgde2 d krd nd!d"d#d$ Z3ed%gde2 d krd nd!d"d&d' Z4ed(gde2 d krd nd)d"d*d+ Z5ed,gde2 d krd nd)d"d-d. Z6ed/gdd0d"d1d2 Z7ed3gde2 d krd nd4d"d5d6 Z8ed7d8gddd9d: Z9ed;gddd<d= Z:ed>gdd?d@dAdB Z;dCdD Z<dEdF Z=edGgdHdIdJ Z>G dKdL dLZ?G dMdN dNZ@dOdP ZAedQge2 d krrd ndRdSdTdU ZBdVdW ZCdXdY ZDdZd[ ZEed\gd]d^ ZFed_gd`da ZGdbdc ZHddde ZIdfdg ZJdhdi ZKedjgddke2 d krd ndldmdndo ZLdpdq ZMdrds ZNdtdu ZOdvdw ZPdxdy ZQdzd{ ZRejSTd|d}d~d ZUejSTdddd ZVejSTdddd ZWejSTd|d}dd ZXejSTdddd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd ZfejSTdddd Zgdd Zhdd Zidd Zjdd Zkdd ZlejSmddd ZnejSTdddd Zodd Zpedd Zqdd Zrdd ZsejSTdddgde	tddggddǄ ZuejSTdddevgdd̄ ZwejSTdddgde	tddggdd΄ ZxddЄ Zydd҄ ZzddԄ Z{ddք Z|dd؄ Z}ddڄ Z~dd܄ Zddބ ZedGgdHdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZejSmddd Zdd Zdd Zdd Zdd ZdS )    N)mock)assert_allclose)check_figures_equalimage_comparison)needs_usetex)HandlerTuple)
rc_context)FontPropertiesc                  C   s   t jd} t jd}dgd dgd  }dgd dgd  }t \}}t| |||D ]\}}}}	|j||||	d q-| \}
}t	t||
}|j
| | dd	d
 d S )N
   a   brglabelccenter left)         ?)locbbox_to_anchor)nprandomZrandnpltsubplotszipscatterget_legend_handles_labelscollectionsOrderedDictlegendvalueskeys)XYlabelscolorsfigaxxyr   colorhandlesr!    r.   ]/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_legend.pytest_legend_ordereddict   s   
r0   c                  C   s\   t  \} }|ddg |ddg dd | D }dd dD }|j||dd	 d S )
Nr   r      c                 s       | ]}|V  qd S Nr.   .0liner.   r.   r/   	<genexpr>3       z(test_legend_generator.<locals>.<genexpr>c                 s   r2   r3   r.   )r5   r   r.   r.   r/   r7   4   r8   )Zspameggs
upper leftr   )r   r   plot	get_linesr!   )r(   r)   r-   r&   r.   r.   r/   test_legend_generator-   s   r>   zlegend_auto1.pngT)remove_textc                  C   sR   t  \} }td}|j|d| ddd |j||d ddd |jdd d	S )
Test automatic legend placementd   2   oy=1r   y=-1bestr;   N)r   r   r   aranger<   r!   )r(   r)   r*   r.   r.   r/   test_legend_auto19   s
   
rI   zlegend_auto2.pngc                  C   sh   t  \} }td}|j||ddd}|j||ddd ddd}|j|d |d gd	d
gdd dS )r@   rA   edgem)alignr,   Nr   r   upZdownrG   r;   )r   r   r   rH   barr!   )r(   r)   r*   b1b2r.   r.   r/   test_legend_auto2C   s
   
$rR   zlegend_auto3.pngc                  C   sV   t  \} }g d}g d}|j||ddd |dd |dd |jdd	 d
S )r@   ?皙?rU   rT   rT   r   ffffff?rW   皙?rX   r   r   o-r6   rE                 ?rG   r;   N)r   r   r<   set_xlimset_ylimr!   )r(   r)   r*   r+   r.   r.   r/   test_legend_auto3M   s   r^   c                  C   s   t jddd\} }g }t|jdD ]2\}}|| |jdgddg  tdd	|d
 |jdd}| j	  |
| |j  qt|d j|d j t|d j|d j dS )z
    Check that the legend location with automatic placement is the same,
    whatever the histogram type is. Related to issue #9580.
       )g@g333333@ncolsfigsize)rO   stepZ
stepfilledr   r   	   r
   Legend)Zbinsr   ZhisttyperG   r;   r   r1   N)r   r   r   flat	set_titlehistranger!   canvasdrawappendget_window_extenttransformed	transAxesinvertedr   bounds)r(   axs
leg_bboxesr)   Zhtlegr.   r.   r/   test_legend_auto4Y   s   
"
ru   c                  C   s  t jddd\} }g }t|jdD ]h\}}tjddddd	tjtd
dgd
d
gdd
gddgddgddgddgddgddgg	ddtj	ddd
ddddfD ]}|
| qM|jddgddgdd |j|d}| j  || |j  qt|d j|d
 j dS )z
    Check that the automatic placement handle a rather complex
    case with non rectangular patch. Related to issue #9580.
    r1   )g333333#@g333333@r`   centerrG   )r   rT   皙?皙?C1)xywidthheightfcr   r   rT   r[   rU   )r~   )r   r   r   ih  rX   ZC0)r|   r~   z	A segmentrE   r;   N)r   r   r   rf   mpatchesZEllipseZPolygonr   arrayZWedge	add_patchr<   r!   rj   rk   rl   rm   rn   ro   rp   r   rq   )r(   rr   rs   r)   r   Z_patchrt   r.   r.   r/   test_legend_auto5o   s,   $
r   zlegend_various_labels.pngc                  C   sl   t  } | d}|jtdddd |jtddddd |jtddddd	d |jdd
d d S )Ny      rC   r   rE   gffffff@u   DéveloppésrM   Z__nolegend__rG   )	numpointsr   )r   figureZadd_subplotr<   r   rH   linspacer!   r(   r)   r.   r.   r/   test_various_labels   s   
r   zlegend_labels_first.pngx86_64g9v?)r?   tolc                  C   sh   t  \} }|jtdddd |jtdd ddd |jtddd	d
dd |jddd d S )Nr
   -or   rE   r   z:xr*      rM   dZdiamondrG   F)r   Zmarkerfirst)r   r   r<   r   rH   Zonesr!   r   r.   r.   r/   test_labels_first   s
   r   zlegend_multiple_keys.pngc                  C   s   t  \} }|g dd\}|g dd\}|g dd\}|j||f||f|gg dd||ftd d	||ftd d
did d S )Nr   r1   r_   r   r1   r_   r   z-xr_   r   r   z-d)ztwo keyszpad=0zone keyr   )ndivider   )r   pad)r   handler_map)r   r   r<   r!   r   )r(   r)   p1p2Zp3r.   r.   r/   test_multiple_keys   s   
r   zrgba_alpha.pnggQ?c                  C   sB   t  \} }|jtddd t jdgdd}|jg d d S )Nr
   r   lwLonglabel that will go awayrw   r;   r   r   r   r   )r   r   r<   ri   r!   legendPatchset_facecolorr(   r)   rt   r.   r.   r/   test_alpha_rgba   s   r   zrcparam_alpha.pngc                  C   st   t  \} }|jtddd tjddid t jdgdd	}|jg d
 W d    d S 1 s3w   Y  d S )Nr
   r   r   zlegend.framealphag      ?)rcr   rw   r;   r   )	r   r   r<   ri   mplr   r!   r   r   r   r.   r.   r/   test_alpha_rcparam   s   "r   z	fancy.pngrX   c                   C   s~   t d t jdgd ddd t jtdtdddd	d t jtdtdd
d
dd t jddd
gddddd d S )Nr   r   r
   zo--ZXXrE   r   rM   zXX
XXr   )ZxerrZyerrr   r   r[   r1   T	My legendr   )r   r   ra   shadowtitler   )r   subplotr<   r   r   rH   Zerrorbarr!   r.   r.   r.   r/   
test_fancy   s   
 
r   
framealphag~jt?c                  C   s4   t ddd} | }tj| |ddd tjdd d S )Nr   rA   Zmylabelr
   )r   r   r   )r   )r   r   r   r<   r!   )r*   r+   r.   r.   r/   test_framealpha   s   r   zscatter_rc3.pngzscatter_rc1.pngc                  C   s   t   t d} | jtdtddddd | jddd	gd
d dtjd< t   t d} | jtdtddddd | jddd	gd
d d S )Nr   r
   r   rM   threerE   r   r[   r   r   )r   r   r   r   zlegend.scatterpointsone)	r   r   r   r   r   rH   r!   r   rcParams)r)   r.   r.   r/   test_rc   s   
 

 
r   zlegend_expand.pngc                  C   s   ddg} t t| d\}}td}t|| D ]:\}}|j|d| ddd |jd	|d
}|| |j||d ddd |jd|d
}|| |jd|dd qdS )zTest expand modeNexpandr   rA   rB   rC   rD   rE   r:   )r   moderF   right
lower leftr1   )r   r   ra   )	r   r   lenr   rH   r   r<   r!   
add_artist)Zlegend_modesr(   rr   r*   r)   r   l1l2r.   r.   r/   test_legend_expand   s   


r   Zhatchingdefault)r?   stylec               	   C   s  dt jd< t  \} }t jdddddd}|| t jdddd	d
dd}|| t jddddddd}|| t jdddd	dd
dd}|| |jg dg dg dddd |jg dg dg ddddd |dd |dd |jddd d S ) N   ztext.kerning_factor)r   r   333333?xxzPatch
default color
filled)hatchr   )Q?r   z||rz   zPatch
explicit color
filled)r   	edgecolorr   )r   皙?FzPatch
default color
unfilled)r   fillr   )r   r   zPatch
explicit color
unfilled)r   r   r   r   )r   g333333?r   )rx   rx   rx   )rT   r[   rT   +zPath
default color)r   gQ?g)\(?ZC2zPath
explicit colorg{Gz皙?r   )ZhandlelengthZhandleheight)	r   r   r   Z	Rectangler   fill_betweenr\   r]   r!   )r(   r)   patchr.   r.   r/   test_hatching  s8   




r   c                  C   sb   t  \} }|td}| |d}|  | jg ksJ |d}|  | d u s/J d S )Nr
   test)r   r   r<   ri   r!   removeZlegends
get_legend)r(   r)   linesrt   r.   r.   r/   test_legend_remove$  s   
r   c            	      C   s   t  \} }d}d}g d}g d}|j|||d |d d |j|||d |d d |j|||d |d d |jdd}d	d
 | D }dd
 |jD }|tt|ksZJ |tt|ksdJ dS )z6Check that the legend handles and labels are reversed.r   )zFirst labelzSecond labelzThird label).,rC   r   rE   r1   Treversec                 S      g | ]}|  qS r.   get_text)r5   tr.   r.   r/   
<listcomp>;      z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>c                 S   r   r.   
get_markerr5   hr.   r.   r/   r   <  r   N)r   r   r<   r!   	get_textslegend_handleslistreversed)	r(   r)   r*   r+   r&   markersrt   Zactual_labelsZactual_markersr.   r.   r/   &test_reverse_legend_handles_and_labels/  s   r   Zpng)
extensionsc                 C   sp   |   }|jdgddd |jdgddd |jdd	 |  }|jdgddd |jdgddd |  d
S )z3Check that the rendered legend entries are reversedr   rofirstrE   r1   bxsecondTr   N)r   r<   r!   )fig_testfig_refr)   r.   r.   r/   test_reverse_legend_displayA  s   r   c                   @   sd   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S )TestLegendFunctionc                 C   s\   t jtddd}td}t   W d    n1 sw   Y  |t  |dg d S )Nr
   hello worldrE   matplotlib.legend.Legendr   r<   ri   r   r   r!   assert_called_withgcaselfr   re   r.   r.   r/   test_legend_no_argsQ  s
   
z&TestLegendFunction.test_legend_no_argsc                 C   s^   t td}td}t |dg W d    n1 sw   Y  |t  |dg d S )Nr
   r   r   r   r   r.   r.   r/   %test_legend_positional_handles_labelsW  s
   z8TestLegendFunction.test_legend_positional_handles_labelsc                 C   sL   t td}tjtdd t | W d    d S 1 sw   Y  d S )Nr
   zbut found an Artistmatch)r   r<   ri   pytestraises	TypeErrorr!   )r   r   r.   r.   r/   #test_legend_positional_handles_only]  s   "z6TestLegendFunction.test_legend_positional_handles_onlyc                 C   s`   t jtddd}td}t dg W d    n1 sw   Y  |t  |dg d S )Nr
   r   rE   r   foobarr   r   r.   r.   r/   "test_legend_positional_labels_onlyd  s
   z5TestLegendFunction.test_legend_positional_labels_onlyc                 C   sj   t jtddd}td}t j|dgdd W d    n1 s"w   Y  |jt  |dgdd d S )Nr
   r   rE   r   r   r   r;   r   r   r.   r.   r/   test_legend_three_argsj  s
   z)TestLegendFunction.test_legend_three_argsc                 C   sr   t jtddd}td}|dgf|_t jddid W d    n1 s'w   Y  |t  gddi d S )Nr
   r   rE   z,matplotlib.legend._get_legend_handles_labels1r1   )r   )	r   r<   ri   r   r   return_valuer!   r   r   )r   r   Zhandles_labelsr.   r.   r/   test_legend_handler_mapp  s   
z*TestLegendFunction.test_legend_handler_mapc                 C   s   t  \}}tddd}|j||dd\}|j|d| dd\}|j|d| d	d\}td
}|j||gd W d    n1 sDw   Y  ||||gd	dg d S )Nr   r      r*   rE   r1   2xr_   Z3xr   )r-   	r   r   r   r   r<   r   r   r!   r   )r   r(   r)   r*   ln1ln2Zln3re   r.   r.   r/   test_legend_kwargs_handles_onlyx  s   z2TestLegendFunction.test_legend_kwargs_handles_onlyc                 C   s   t  \}}tddd}|||\}||d| \}td}|jddgd W d    n1 s5w   Y  ||||gddg d S )	Nr   r   r   r1   r   r*   r   r&   r   )r   r(   r)   r*   r  r  re   r.   r.   r/   test_legend_kwargs_labels_only  s   z1TestLegendFunction.test_legend_kwargs_labels_onlyc                 C   s   t  \}}tddtj d}|j|t|dd\}|j|t|dd\}t	d}|j
d||fd	 W d    n1 sAw   Y  ||||fd d S )
Nr   r1      sinrE   cosr   r   r   )r&   r-   )r   r   r   r   pir<   r  r  r   r   r!   r   )r   r(   r)   thlnslncre   r.   r.   r/   !test_legend_kwargs_handles_labels  s   z4TestLegendFunction.test_legend_kwargs_handles_labelsc                 C   s   t  \}}tddtj d}|j|t|dd\}|j|t|dd\}t	t
}|j||fdd W d    n1 sAw   Y  t|d	ksNJ t|d jd
sZJ d S )Nr   r1   r  r  rE   r  r	  r  r   MYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   r   r
  r<   r  r  r   warnsDeprecationWarningr!   r   strmessage
startswith)r   r(   r)   r  r  r  recordr.   r.   r/   test_warn_mixed_args_and_kwargs  s   z2TestLegendFunction.test_warn_mixed_args_and_kwargsc                 C   s   ddl m} |d}| }|jg dg ddd\}|jg dg ddd\}td	}t  W d    n1 s<w   Y  ||||gddg d S )
Nr   )host_subploto   r   r   r1   ZDensityrE   )r   r_   r1   ZTemperaturer   )	Zmpl_toolkits.axes_grid1r  Ztwinxr<   r   r   r   r!   r   )r   r  hostZparr   r   re   r.   r.   r/   test_parasite  s   
z TestLegendFunction.test_parasiteN)__name__
__module____qualname__r   r   r   r   r   r   r  r  r  r  r  r.   r.   r.   r/   r   O  s    
	
r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestLegendFigureFunctionc                 C   sl   t  \}}|td}td}||dg W d    n1 s$w   Y  |j||dg|jd d S )Nr
   r   r   bbox_transform	r   r   r<   ri   r   r   r!   r   transFigurer   r(   r)   r   re   r.   r.   r/   test_legend_handle_label  s   
z1TestLegendFigureFunction.test_legend_handle_labelc                 C   sj   t  \}}|jtddd}td}|  W d    n1 s#w   Y  |j||dg|jd d S )Nr
   r   rE   r   r   r"  r$  r.   r.   r/   r     s   

z,TestLegendFigureFunction.test_legend_no_argsc                 C   sj   t  \}}|td}td}|dg W d    n1 s#w   Y  |j||dg|jd d S )Nr
   r   r   r   r"  r$  r.   r.   r/   test_legend_label_arg  s   
z.TestLegendFigureFunction.test_legend_label_argc                 C   s   t  \}}|td}tjtdd ||dgd W d    n1 s'w   Y  tjtdd |j|dgddd W d    d S 1 sIw   Y  d S )Nr
   z0-2r   r   r   leftr;   )r   r   r<   ri   r   r   r   r!   )r   r(   r)   r   r.   r.   r/   test_legend_label_three_args  s   "z5TestLegendFigureFunction.test_legend_label_three_argsc                 C   s   t dd\}}|d td}|d tdd }td}|jdd||fd	 W d    n1 s7w   Y  |j	|||fdd|j
d
 d S )Nr   r1   r   r
          @r   r   r	  )r   r&   r-   )r   r!  )r   r   r<   ri   r   rH   r   r   r!   r   r#  )r   r(   rr   r   lines2re   r.   r.   r/   test_legend_kw_args  s   
z,TestLegendFigureFunction.test_legend_kw_argsc                 C   s   t dd\}}|d td}|d tdd }tt}|j	||fdd W d    n1 s6w   Y  t
|dksCJ t|d jdsOJ d S )	Nr   r1   r   r
   r)  r	  r  r  )r   r   r<   ri   r   rH   r   r  r  r!   r   r  r  r  )r   r(   rr   r   r*  r  r.   r.   r/   test_warn_args_kwargs  s   z.TestLegendFigureFunction.test_warn_args_kwargsN)	r  r  r  r%  r   r&  r(  r+  r,  r.   r.   r.   r/   r    s    
r  c                  C   sN  dd dD } | dd dD 7 } | dd dD 7 } | dd dD 7 } g d}g d	}g d
}g d}||||||||||||g}g dg dg dg dg dg dg dg dg dg dg dg dg}t | D ]:\}}t| tjddd\}	}
|
jtddd |	jd| d}|	  t|
	 j
||  t|	 j
||  qjd S )Nc                 S      g | ]}d | qS )zupper r.   r5   posr.   r.   r/   r     r   z.test_figure_legend_outside.<locals>.<listcomp>)r'  rw   r   c                 S   r-  )zlower r.   r.  r.   r.   r/   r     r   c                 S   r-  )zleft r.   r.  r.   r.   r/   r     r   )lowerrw   upperc                 S   r-  )zright r.   r.  r.   r.   r/   r     r   )QnX4@Qn;@l@gE@)r2  g Q@r4  lf@)gLNb@r3  r4  r5  )r2  r3  gE@r5  )      $@     X@     `@     p@)     (u@r7       |@r9  )  r7       @r9  )r6  r6  r8       F@)r:  r6  r;  r>  )     ؄@r6  r=  r>  )r6       q@r8       s@)r<  r6  r=  r>  )r?  r@  r=  rA  )r?  r7  r=  r9  TrA   )Zconstrained_layoutdpir
   ZBoo1rE   zoutside r;   )	enumerateprintr   r   r<   ri   r!   Zdraw_without_renderingr   rm   Zextents)ZtodosZupperextZlowerextZleftextZrightextZaxbbZlegbbnntodor(   rr   rt   r.   r.   r/   test_figure_legend_outside  sN   

rG  zlegend_stackplot.pnggX9v?)r   c                  C   sv   t  \} }tddd}d| }d| d }d| d }|j||||g dd	 |d
 |d |jdd dS )z/Test legend for PolyCollection using stackplot.r   r
   r[   r)  r   g      @r1   )y1y2y3r  )r   r
   )r   F   rG   r;   N)r   r   r   r   Z	stackplotr\   r]   r!   )r(   r)   r*   rH  rI  rJ  r.   r.   r/   test_legend_stackplot  s   

rL  c                  C   s<   t  \} }t  \}}|tdtd}||d d S )Nr_   foo)r   r   rO   ri   r!   )r(   r)   Zfig2Zax2Zbrsr.   r.   r/   test_cross_figure_patch_legend   s   rN  c               
   C   s   t  \} }|jtjgtjgddddd}||gdg t  \} }dD ]!}d}tjd|\}}d	tj| }|j|||||d
dd q%|  |d d S )NrC   r   r_   )marker	facecolorr   sr   )redgreenbluei  r1   g      i@r   none)r   rQ  r   alpha
edgecolorsT)	r   r   r   r   nanr!   r   randgrid)r(   r)   r   r,   nr*   r+   scaler.   r.   r/   test_nanscatter(  s   r]  c                  C   s   t  \} }|jdddddd |jdddd	dd |  t|g\}}t|d
ks.J t  \} }|jdddddd |jdddd	dd |  t|g\}}t|d
ks\J d S )NrZ   r[   krC   r   )r,   rO  r   r   r   vr1   )r   r   r   r!   mlegendZ_get_legend_handles_labelsr   )r(   r)   handZlabr.   r.   r/   test_legend_repeatcheckok<  s   rb  znot_covering_scatter.pngc                  C   sd   g d} t dD ]}tj|g|g| | d qtjg ddd t dd t dd d S )	N)r   r   r   r_   )r,   )rM  rM  rM  rG   r;   g      皙@)ri   r   r   r!   r   r\   r]   )r'   r[  r.   r.   r/   test_not_covering_scatterK  s   rd  z"not_covering_scatter_transform.pngc                  C   s^   t  dd} tddd}t|| tjdgdg| t j	 d tj
dd	gd
d d S )Nir   r      i  r
   )	transformrM  rO   rG   r;   )mtransformsZAffine2D	translater   r   r   r<   r   r   Z	transDatar!   )offsetr*   r.   r.   r/   #test_not_covering_scatter_transformW  s
   rj  c                  C   s  ddgddgg} ddgddggd	dgd
dggg}d
dgddggd	dgddggg}t j| ddd}t j|dd}t j|dd	d}t \}}|| || || ||||gg d}|j\}	}
}t|||f|	|
|fD ]\}}| d |j	ksJ qpd S )N)r   r   )r   r   )r   333333?)ry   ry   gffffff?ry   rx   r   r   rk  rU   z--r_   )
linestylesr   z-.)rl  :)line1line2zline 3r   )
mcollectionsZLineCollectionr   r   Zadd_collectionr!   r   r   Zget_linestylesZ_dash_pattern)Zlines1r*  Zlines3Zlc1Zlc2Zlc3r(   r)   rt   Zh1h2Zh3Zohlhr.   r.   r/   !test_linecollection_scaled_dashesc  s     


rs  c                  C   s.   t  \} }|jtddd |jdd dS )z(Test legend handler with numpoints <= 1.r   r   rE   r   r   N)r   r   r<   ri   r!   r   r.   r.   r/   test_handler_numpointsw  s   ru  c                  C   s   t  \} }|jdgdd |jddddd tt}|  W d   n1 s+w   Y  t|dks8J t  \}}|	t
jddd	 t  td
 |  W d   dS 1 sbw   Y  dS )z2Test that Text artists with labels raise a warningr   	mock datarE   textr   )r*   r+   rQ  r   Nr   )r
   r
   error)r   r   r<   rw  r   r  UserWarningr!   r   Z
pcolormeshr   r   uniformwarningscatch_warningssimplefilterr   )r(   r)   r  fr.   r.   r/   test_text_nohandler_warning  s   



"r  c                   C   s   t jg g dd t   dS )z1Test legend when bar chart is empty with a label.r   rE   N)r   rO   r!   r.   r.   r.   r/    test_empty_bar_chart_with_legend  s   r  zshadow_argument_types.pngZmpl20gy&1?)r?   r   r   c               	   C   s   t  \} }|jg ddd |jddd|jddd|jd	d
ddd|jddddd|jdddddf}|D ]}|| q:|jdd d S )Nr   r   rE   r:   Tr   r   upper rightFr   rR  rU   )r,   rV  center right)rU   ry   r   )r,   Zoyr   ztab:cyanr
   )r,   oxlower rightr;   )r   r   r<   r!   r   )r(   r)   Zlegslr.   r.   r/   test_shadow_argument_types  s"   	r  c                  C   s`   t  \} }|jg ddd tjtdd |jddd W d    d S 1 s)w   Y  d S )	Nr   r   rE   zdict or boolr   r:   Zaardvarkr  )r   r   r<   r   r   
ValueErrorr!   r   r.   r.   r/   test_shadow_invalid_argument  s
   "r  c                  C   sD   t  \} }|jtddd |jddd}|  dks J d S )NrA   r   rE   Tw)r   rP  r   )r   r   r<   ri   r!   Z	get_frameZ	get_alphar   r.   r.   r/   test_shadow_framealpha  s   r  c                  C   sN   t  \} }|jtddd | }|  dksJ |  r%J d S )Nr
   rv  rE    )r   r   r<   ri   r!   	get_titler   Zget_visibler   r.   r.   r/   test_legend_title_empty  s
   r  c                  C   s   t jdd\} }|jtddd | }|| j j}t jdd\} }|jtddd | }|| j j}t	
|d d|ksHJ d S )	NrA   rB  r
   AardvarkrE      r1   rU   )r   r   r<   ri   r!   rm   rj   Zget_rendererZx0r   Zapprox)r(   r)   rt   Zx01Zx02r.   r.   r/    test_legend_proper_window_extent  s   r  c                  C   sP   t jdd\} }|jtddd | }|  }| j  |  |  d S )NrA   r  r
   r  rE   )r   r   r<   ri   r!   rj   rk   rm   )r(   r)   rt   leg2r.   r.   r/   "test_window_extent_cached_renderer  s   
r  c            	      C   s.  t jtddd tt t jdddddd W d    n1 s$w   Y  t jdtdddd	} |  	 dks>J t j
d
ddd\}}|j}|d jtddd |d jddd}|  dksiJ |d jtddd |d jddddd	}|  dksJ |d
 jtddd d tjd< |d
 jdddid	}|  tjd ksJ |d jtddd |d jdd}|  tjd ksJ |d jtddd dtjd< |d jdddid	}|  dksJ |d jtddd |d jdd}|  dksJ d S )Nr
   rv  rE   r     serif)familysize)r   title_fontsizetitle_fontproperties)r   r  r1   r_   )r
   r   )rb   r   )r   r  r   zlegend.title_fontsizer  z	font.sizer   r   r   r   )r   r<   ri   r   r   r  r!   r	   r  get_sizer   rf   Zget_fontsizer   r   )	rt   r(   axesZleg0Zleg1r  Zleg3Zleg4Zleg5r.   r.   r/   #test_legend_title_fontprop_fontsize  sL   





r  	alignment)rw   r'  r   c                 C   sV   t  \}}|jtddd |jd| d}| d j| ks!J | | ks)J d S )Nr
   r   rE   r  )r   r  r   )r   r   r<   ri   r!   get_childrenrL   get_alignmentr  r(   r)   rt   r.   r.   r/   test_legend_alignment  s
   r  r   rv   c                 C   sL   t  \}}|jtddd | }||  | tjj	|  ks$J d S )Nr
   r   rE   )
r   r   r<   ri   r!   set_loc_get_locr`  re   codesr   r(   r)   rt   r.   r.   r/   test_ax_legend_set_loc  s
   
r  )zoutside rightr   c                 C   sf   t  \}}|jtddd | }||  | dr#|  d n| } | t	j
j|  ks1J d S )Nr
   r   rE   Zoutsider   )r   r   r<   ri   r!   r  r  splitr  r`  re   r  r  r.   r.   r/   test_fig_legend_set_loc  s   
r  c                 C   sZ   t  \}}|jtddd | }||  | d j| ks#J | | ks+J d S )Nr
   r   rE   r   )	r   r   r<   ri   r!   Zset_alignmentr  rL   r  r  r.   r.   r/   test_legend_set_alignment(  s   
r  r,   )rR  rU  )r   r   r   c                 C   s   t  \}}|jtdtdd dd |jtdtdd dd |jtdtdd dd |j| d	}| D ]}tj	|
 | sMJ q@d S )
Nr
   r   #1rE   r1   #2r_   #3Z
labelcolor)r   r   r<   r   rH   r!   r   r   r'   
same_color	get_colorr,   r(   r)   rt   rw  r.   r.   r/   test_legend_labelcolor_single2  s      r  c                  C   s   t  \} }|jtdtdd dd |jtdtdd dd |jtdtdd dd |jg d	d
}t| g d	D ]\}}tj	
| |sVJ qGd S )Nr
   r   r  rE   r1   r  r_   r  r   r   r   r  r   r   r<   r   rH   r!   r   r   r   r'   r  r  r(   r)   rt   rw  r,   r.   r.   r/   test_legend_labelcolor_list?  s      r  c                  C      t  \} }|jtdtdd ddd |jtdtdd ddd |jtdtdd	 d
dd |jdd}t| g dD ]\}}tj	
| |sWJ qHd S )Nr
   r   r  r   r   r,   r1   r  r   r_   r  r   	linecolorr  r  r  r  r.   r.   r/    test_legend_labelcolor_linecolorK     """r  c                  C   r  )Nr
   r   r  r   r   r1   r  r   r_   r  r   r  r  r  r   r   r   r   rH   r!   r   r   r   r'   r  r  r  r.   r.   r/   /test_legend_pathcollection_labelcolor_linecolorW  r  r  c                  C   sl   t  \} }tg dd }|jtdtdd|d |jdd}| \}tj	
| ds4J d S )	Nr   r   r   r   rK   r1   r
   r  r   r  r  black)r   r   r   r   r   rH   r!   r   r   r'   r  r  )r(   r)   r'   rt   rw  r.   r.   r/   8test_legend_pathcollection_labelcolor_linecolor_iterablec  s   
r  c                  C   s`   t  \} }|jtdtdtddd |jdd}| \}tj	|
 ds.J d S )Nr
   r  )r   r   r  r  r  )r   r   r   r   rH   r!   r   r   r'   r  r  )r(   r)   rt   rw  r.   r.   r/   4test_legend_pathcollection_labelcolor_linecolor_cmapo  s
   $
r  c                  C   r  )Nr
   r   r  r   r   markeredgecolorr1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   &test_legend_labelcolor_markeredgecolorz  r  r  c                  C   r  )Nr
   r   r  r   r   r   r1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   5test_legend_pathcollection_labelcolor_markeredgecolor  r  r  c                  C   |   t  \} }tg dd }|jtdtdd|d |jdd}t| dgD ]\}}t	j
| |s;J q,d S )	Nr  r1   r
   r  r  r  r  r^  r   r   r   r   r   rH   r!   r   r   r   r'   r  r  r(   r)   r'   rt   rw  r,   r.   r.   r/   >test_legend_pathcollection_labelcolor_markeredgecolor_iterable     r  c                  C   s   t  \} }tjtjd}|jt	dt	ddt	d|dd |j
dd}t| dgD ]\}}tj| |sAJ q2d S )Nr
   r  ZReds)r   r   r   Zcmapr  r  r^  r   r   r   cmZviridisr   r   rY  r   rH   r!   r   r   r'   r  r  )r(   r)   rW  rt   rw  r,   r.   r.   r/   :test_legend_pathcollection_labelcolor_markeredgecolor_cmap  s   	r  c                  C   r  )Nr
   r   r  r   r   markerfacecolorr1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   &test_legend_labelcolor_markerfacecolor  r  r  c                  C   r  )Nr
   r   r  r   r   rP  r1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   5test_legend_pathcollection_labelcolor_markerfacecolor  r  r  c                  C   r  )	Nr  r1   r
   r  r  r  r  r^  r  r  r.   r.   r/   >test_legend_pathcollection_labelcolor_markerfacecolor_iterable  r  r  c                  C   s~   t  \} }tjtjd}|jt	dt	dd|d |j
dd}t| dgD ]\}}tj| |s<J q-d S )Nr
   r  r   r  r  r^  r  r  r.   r.   r/   8test_legend_pathcollection_labelcolor_markfacecolor_cmap  s   r  c                 C   s   t  \}}|jtdtdd dd |jtdtdd dd |jtdtdd dd | tjd	< | }| D ]}tj	
| | sPJ qCd S )
Nr
   r   r  rE   r1   r  r_   r  legend.labelcolor)r   r   r<   r   rH   r   r   r!   r   r'   r  r  r  r.   r.   r/   %test_legend_labelcolor_rcparam_single  s      
r  c                  C      t  \} }|jtdtdd ddd |jtdtdd ddd |jtdtdd	 d
dd dtjd< | }t|	 g dD ]\}}tj
| |sZJ qKd S )Nr
   r   r  r   r  r1   r  r   r_   r  r   r  r  r  r   r   r<   r   rH   r   r   r!   r   r   r'   r  r  r  r.   r.   r/   (test_legend_labelcolor_rcparam_linecolor     """
r  c                  C   r  )Nr
   r   r  r   r  r1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   .test_legend_labelcolor_rcparam_markeredgecolor  r  r  c                  C   r  )Nr
   r   r  r   r  r1   r  r   r_   r  r   Zmecr  r  r  r  r.   r.   r/   4test_legend_labelcolor_rcparam_markeredgecolor_short  r  r  c                  C   r  )Nr
   r   r  r   r  r1   r  r   r_   r  r   r  r  r  r  r  r.   r.   r/   .test_legend_labelcolor_rcparam_markerfacecolor  r  r  c                  C   r  )Nr
   r   r  r   r  r1   r  r   r_   r  r   Zmfcr  r  r  r  r.   r.   r/   4test_legend_labelcolor_rcparam_markerfacecolor_short(  r  r  z4ignore:No artists with labels found to put in legendc                  C   sD   t  } |  r
J | d |  sJ | d |  r J d S )NTF)r   r!   get_draggableZset_draggabler!   r.   r.   r/   test_get_set_draggable5  s   

r  	draggable)TFc                 C   s>   t  \}}|jtddd |j| d}| | u sJ d S )Nr
   ZshabnamsrE   )r  )r   r   r<   ri   r!   r  )r  r(   r)   rt   r.   r.   r/   test_legend_draggable?  s   r  c                  C   s   t jg ddddd\} }}t  }|jD ]}|d q| d d |d  d d ks1J | d d |d  d d ksEJ d S )	Nr   g      ?datarR  )rV  r   r,   r[   rM   r   )r   rh   r!   r   	set_alphaget_facecolorget_edgecolor)r*   r[  hhr!   rr  r.   r.   r/   test_alpha_handlesG  s   
(,r  c                 C   sb   dt jd< dt jd< dt jd< t \}}|jdddd	 |jd
d |j  d| jvs/J d S )Nr  zfont.familyzComputer Modernz
font.serifTztext.usetexr   inputrE   r   r  z Font family ['serif'] not found.)	r   r   r   r   r<   r!   rj   rk   rw  )Zcaplogr(   r)   r.   r.   r/   test_usetex_no_warnP  s   



r  c                    s   t jddd | td fdd t \}}|j  g d}g d}|j||d	d
d t	ddi |
 }W d    n1 sCw   Y  tjtdd}|| W d    n1 s_w   Y  t|dkslJ d S )Nr         ?rc   perf_counterc                         t  S r3   nextr.   Zcounterr.   r/   <lambda>a      z-test_warn_big_data_best_loc.<locals>.<lambda>rS   rV   rY   r6   rE   z
legend.locrG   zGCreating legend with loc="best" can be slow with large amounts of data.r   r1   )	itertoolscountsetattrtimer   r   rj   rk   r<   r   r!   r   r  ry  draw_artistr   )monkeypatchr(   r)   r*   r+   r!   recordsr.   r  r/   test_warn_big_data_best_loc^  s"   

r  c                    st   t jddd | td fdd t \}}|j  g d}g d}|j||d	d
d |	d}|
| d S )Nr   r  r  r  c                      r  r3   r  r.   r  r.   r/   r  y  r  z:test_no_warn_big_data_when_loc_specified.<locals>.<lambda>rS   rV   rY   r6   rE   rG   )r  r  r  r  r   r   rj   rk   r<   r!   r  )r  r(   r)   r*   r+   r!   r.   r  r/   (test_no_warn_big_data_when_loc_specifiedv  s   

r   label_arraylowhigh)r  r  c                 C   sh   g d}ddgddgddgg}t  \}}|j||| d | }dd	 | D }|d
dgks2J d S )Nr   r   r1   r   r   rd   rE   c                 S   r   r.   r   r5   entryr.   r.   r/   r     r   z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>r  r  )r   r   r<   r!   r   )r  r*   r+   r(   r)   rt   legend_textsr.   r.   r/   'test_plot_multiple_input_multiple_label  s   r  r   r   r   c                 C   sn   g d}ddgddgddgg}t  \}}|j||| d | }dd	 | D }|t| gd ks5J d S )
Nr   r   r1   r   r   rd   rE   c                 S   r   r.   r   r  r.   r.   r/   r     r   z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r<   r!   r   r  )r   r*   r+   r(   r)   rt   r  r.   r.   r/   %test_plot_multiple_input_single_label  s   r  c                 C   s   g d}g d}t  \}}tjtjdd |j||| d W d    n1 s)w   Y  | }t|	 dks<J |	 d 
 t| ksJJ d S )Nr   )r1   r   r   z$Passing label as a length 2 sequencer   rE   r   r   )r   r   r   r  r   ZMatplotlibDeprecationWarningr<   r!   r   r   r   r  )r  r*   r+   r(   r)   rt   r.   r.   r/   %test_plot_single_input_multiple_label  s    r	  c                  C   s:   t  \} }|jdgdggdgd\}| dksJ d S )Nr   r   ArE   )r   r   r<   	get_label)r(   r)   r6   r.   r.   r/   !test_plot_single_input_list_label  s   r  c                  C   sr   t t* g d} ddgddgddgg}g d}t \}}|j| ||d W d    d S 1 s2w   Y  d S )	Nr   r   r1   r   r   rd   )r  r  ZmediumrE   )r   r   r  r   r   r<   )r*   r+   r   r(   r)   r.   r.   r/   3test_plot_multiple_label_incorrect_length_exception  s   "r  c                  C   s:   t  \} }|jg dg dg ddddd |  d S )Nr  r   r   r   ZfaceZFill)rP  r   r   )r   r   r   r!   r   r.   r.   r/   test_legend_face_edgecolor  s
   r  c                  C   sT   t  \} }|jddgddgdd | }|j|u sJ | d j|u s(J d S )Nr   r1   r_   r   r6   rE   r   )r   r   r<   r!   r  r   r   r.   r.   r/   test_legend_text_axes  s
   r  c                  C   sn   t  \} }|jddgddgdd tjdgdgddg}|j|dgdd}|d  |jd  ks5J d S )Nr   r   r_  )rO  r  rt  )r   r   r   mlinesLine2Dr!   r   r   )r(   r)   r-   rt   r.   r.   r/   test_handlerline2d  s
   "r  c                  C   sL   t   } |  }|jddgddgdd |  }|jdd| u s$J d S )Nr   r   r6   rE   F)root)r   r   Z
subfiguresr   r<   r!   Z
get_figure)Zsubfigr)   rt   r.   r.   r/   test_subfigure_legend  s
   r  c                  C   s   t jddgddgddd} t   d }|d | d d t|  d d d ks0J | d d t|  d d d ksFJ d S )	Nr   r   r1   r_   z#123456r   )r,   r   r   )r   r   r!   Zget_patchesr  r  tupler  )Zpcr   r.   r.   r/   -test_setting_alpha_keeps_polycollection_color  s
   
,0r  c            	      C   s   g d} t  \}}dd | D }g d}dd |D }|||}dd | D }dd | D }||  kr?| ksBJ  J ||ksHJ d S )N)r   *r_  c                 S   s"   g | ]}t jd gd gd|dqS )r   None)ZlsrO  )r  r  )r5   markr.   r.   r/   r     s    z3test_legend_markers_from_line2d.<locals>.<listcomp>)rM  rO   Zxyzzyc                 S   r   r.   r   r4   r.   r.   r/   r     r   c                 S   r   r.   r   r4   r.   r.   r/   r     r   c                 S   r   r.   r   )r5   rw  r.   r.   r/   r     r   )r   r   r!   r=   r   )	_markersr(   r)   r   r&   r   r!   Znew_markersZ
new_labelsr.   r.   r/   test_legend_markers_from_line2d  s   r  c                 C   s,   g d}d}| j ||d |j ||d d S )N)r   r   r   r   er~  r_   )Zncol)ra   r  )r   r   stringsra   r.   r.   r/   test_ncol_ncols	  s   r  c                  C   s   t  \} }tjtdd |jddgd W d    n1 s w   Y  tjtdd |jddgd W d    n1 s?w   Y  tjtdd |jd	dgd W d    d S 1 s_w   Y  d S )
NzFloc must be string, coordinate tuple, or an integer 0-10, not \(1.1,\)r   )r   rv  r   r&   zWloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 0.4227, 0.4523\))bX9?g:M?gm{?zRloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 'go blue'\))r   zgo bluer   r   r   r   r  r!   r   r.   r.   r/    test_loc_invalid_tuple_exception  s   "r"  c                  C   s0   t  \} }|jddgd |jddgd d S )N)r   }?5^I?rv  r  )r   r1   r   r   r!   r   r.   r.   r/   test_loc_valid_tuple#  s   r%  c                  C   s8   t  \} }|jddgdgd |jddgdgd d S )Nr   r#  rv  r  r   r1   r$  r   r.   r.   r/   test_loc_valid_list)  s   r&  c                  C   sT   t  \} }tjtdd |jg ddgd W d    d S 1 s#w   Y  d S )NzOloc must be string, coordinate tuple, or an integer 0-10, not \[1.1, 2.2, 3.3\]r   )r   rc  gffffff
@rv  r  r!  r   r.   r.   r/   test_loc_invalid_list_exception/     "r'  c                  C   sT   t  \} }tjtdd |jddidgd W d    d S 1 s#w   Y  d S )NzKloc must be string, coordinate tuple, or an integer 0-10, not {'not': True}r   notTrv  r  r!  r   r.   r.   r/   test_loc_invalid_type6  r(  r*  c                  C   s   t  \} }|jddgd |jddgd |jddgd |jddgd tjtdd |jd	dgd W d    n1 s@w   Y  tjtd
d |jddgd W d    d S 1 s`w   Y  d S )Nr   rv  r  r   r   r
   z@loc must be string, coordinate tuple, or an integer 0-10, not 11r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not -1rM   r   r   r!   r   r   r  r   r.   r.   r/   !test_loc_validation_numeric_value=  s   "r,  c                  C   s   t  \} }dg}|jd|d |jd|d |jd|d |jd|d |jd|d |jd|d |jd|d |jd|d |jd	|d |jd
|d |jd|d |jd|d tjtdd |jd|d W d    d S 1 sww   Y  d S )Nrv  rG   r  r  r:   r   r  r   r   r  zlower centerzupper centerz 'wrong' is not a valid value forr   Zwrongr+  )r(   r)   r&   r.   r.   r/    test_loc_validation_string_valueL  s"   "r-  c                  C   s   t td\} t td\}tjtdd' t j| |gg dd}t|jdks,J t|	 dks6J W d    d S 1 sAw   Y  d S )Nr
   znumber of handles and labelsr   pl1pl2Zpl3r-   r&   r1   )
r   r<   ri   r   r  ry  r!   r   r   r   r/  r0  r!   r.   r.   r/   !test_legend_handle_label_mismatch_  s   "r3  c                  C   sh   t td\} t td\}t jt| |gtg dd}t|jdks(J t| dks2J d S )Nr
   r.  r1  r1   )r   r<   ri   r!   iterr   r   r   r2  r.   r.   r/   (test_legend_handle_label_mismatch_no_lenh  s   
r5  c                   C   sJ   t g d tjtdd t   W d    d S 1 sw   Y  d S )Nr   zNo artists with labels foundr   )r   r<   r   r   ry  r!   r.   r.   r.   r/   test_legend_nolabels_warningq  s   
"r6  c                   C   s.   t g d t   t   d usJ d S )Nr   )r   r<   r!   r   r   r.   r.   r.   r/   test_legend_nolabels_draww  s   r7  c            	   	   C   s   g d} g d}g d}g }t jddd\}}t|jdD ]3\}}|j| ||dd	d
d |dd |dd |j|d}|j	  |
| |j  qt|d j|d j d S )Nr   )r   r   r   )r   r   r   r1   r
   r   r`   rG   r   grayr   zShaded Area)r,   rV  r   r   r   rM   r   r;   r   )r   r   r   rf   r   r\   r]   r!   rj   rk   rl   rm   rn   ro   rp   r   rq   )	r*   rH  rI  rs   r(   rr   r)   r   rt   r.   r.   r/   test_legend_loc_polycollection~  s   
r;  c                  C   s   t jddd\} }g }t|jdD ]5\}}ddg}ddg}|j||dd |jddd	d
d |j|d}| j  |	|
 |j  qt|d j|d j d S )Nr1   r8  r`   r9  r   z	plot namerE   r  zsome text blahblahtop)Zverticalalignmentr;   r   )r   r   r   rf   r<   rw  r!   rj   rk   rl   rm   rn   ro   rp   r   rq   )r(   rr   rs   r)   r   r*   r+   rt   r.   r.   r/   test_legend_text  s   
r=  c                  C   s   t  \} }|jg ddd |jddd |jdd tjj| d	| jd
}| 	t
  W d    n1 s8w   Y  |  d S )Nr   ZLinerE   r   )r   r   )r{   r   r;   _get_renderer)wraps)r   r   r<   Zannotater!   r   r   objectr>  ZsavefigioBytesIOZassert_not_called)r(   r)   Zmocked_get_rendererr.   r.   r/   test_legend_annotate  s   rC  c            
      C   s  t jd t jd} tjddd\}}g d}|d j| d|d	}d
d |d D |ks0J |d  \}}||ks>J tdd |D sIJ |d j| |dd}dd |d D |ks`J |d  \}}||ksnJ tdd |D syJ tj	t
dd |d j| |d d d}W d    n1 sw   Y  |d j| dd}	|	d d  dksJ tdd |	d dd  D sJ d S )Ni!N,)r
   r   r   r   )Znrowsra   )box Azbox Bzbox Czbox Dr   T)Zpatch_artistr   c                 S   r   r.   r  r5   r_  r.   r.   r/   r     r   z.test_boxplot_legend_labels.<locals>.<listcomp>Zboxesc                 s       | ]
}t |tjjV  qd S r3   )
isinstancer   patchesZ	PathPatchr   r.   r.   r/   r7         z-test_boxplot_legend_labels.<locals>.<genexpr>F)r   Zshowboxc                 S   r   r.   rE  rF  r.   r.   r/   r     r   Zmediansc                 s   rG  r3   )rH  r   r   r  r   r.   r.   r/   r7     rJ  z values must have same the lengthr   r1   rM   rE   r_   rD  c                 s   s    | ]
}|  d V  qdS )_N)r  r  )r5   r*   r.   r.   r/   r7     rJ  )r   r   seedr   r   Zboxplotr   allr   r   r  r  )
r  r(   rr   Zlegend_labelsZbp1r-   r&   Zbp2Zbp3Zbp4r.   r.   r/   test_boxplot_legend_labels  s(   &rN  )r   rA  r  platformr  Zunittestr   r{  numpyr   Znumpy.testingr   r   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr   Z
matplotlibr   Zmatplotlib.patchesrI  r   Zmatplotlib.transformsZ
transformsrg  Zmatplotlib.collectionsrp  Zmatplotlib.linesr   r  Zmatplotlib.legend_handlerr   Zmatplotlib.legendr!   r`  r   Zmatplotlib.font_managerr	   r0   r>   rI   rR   r^   ru   r   r   machiner   r   r   r   r   r   r   r   r   r   r   r   r   r  rG  rL  rN  r]  rb  rd  rj  rs  ru  r  r  r  r  r  r  r  r  r  r  Zparametrizer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r   r   r  intr  r	  r  r  r  r  r  r  r  r  r  r"  r%  r&  r'  r*  r,  r-  r3  r5  r6  r7  r;  r=  rC  rN  r.   r.   r.   r/   <module>   sV   
	
	
 


	







!

`8)




		&




	



	
	



			

		

