
    deI                       d Z ddlmZmZ ddlZddlZddlZddlZddlZddlZddl	Z
ddlZddlmc mZ ddlmZ ddlZddlmZmZmZmZ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#         G d d	e                      Z$d
 Z%dS )z Test cases for DataFrame.plot     )datedatetimeN)is_list_like)	DataFrame
MultiIndexPeriodIndexSeriesbdate_range
date_rangeplotting)TestPlotBase_check_plot_workspprint_thingc                   z   e Zd Zej                            d          ej        j        d                         Zd Zej        j        d             Z	d Z
d Zd Zd	 Zej                            d
ddg          d             Zej                            dg d          d             Zd Zd Zd Zd Zd Zd Zej                            dddg          d             Zd Zd Zej                            dd          ej                            d d!dg          d"                         Zd# Zd$ Zd% Zd& Zd' Zd( Z d) Z!d* Z"d+ Z#d, Z$ej                            d-d!dg          ej                            d.g d/g d0f          d1                         Z%ej                            d2g d3          d4             Z&d5 Z'd6 Z(d7 Z)d8 Z*ej        j        d9             Z+d: Z,d; Z-d< Z.e/j0        d=             Z1e/j0        d>             Z2d? Z3ej                            d@dA e4j5        dBC          z  dA e4j5        dDC          z  g          dE             Z6	 	 	 	 ddGZ7dH Z8dI Z9dJ Z:dK Z;ej                            dLg dM          dN             Z<dO Z=e/j0        dP             Z>dQ Z?dR Z@dS ZAej                            dTdUdVgdWdXfdWgdUdVgdYdZgfg          d[             ZBd\ ZCej                            d]d^dWgdUfg          d_             ZDej                            d`dWdUgdYgdagfdWdUdVgdYdZgdadbgfdcdddegdfdggdhdigfg          dj             ZEej                            dkdcdddWdUgfdddcdcddgfg          dl             ZFdm ZGdn ZHej                            doi dpfdqdridrfdsdtidtfg          du             ZIdv ZJdw ZKej        j        dx             ZLej        j        ej                            dg dy          dz                         ZMej                            d{eN|          d}             ZOd~ ZPej        j        d             ZQej                            dg dy          d             ZRd ZSd ZTd ZUd ZVd ZWd ZXe/j0        d             ZYd ZZd Z[d Z\ej                            dg d          d             Z]d Z^d Z_ej                            dddg          d             Z`d Zad Zbd Zce/j0        ej                            dd          d                         Zdd Zed Zfd Zgej                            dg d          d             Zhd Zid Zjej                            dd          d             Zkej                            ddddddFddddegfg          ej                            dg d          d                         Zlej                            dg d          ej                            dddg          d                         Zmej                            dd          d             ZndFS )TestDataFramePlotszApi changed in 3.6.0)reasonc                 >   t          j                    }t          |j        d           t          |j        dd          }|                     |dd           t          |j        ddd	          }|                     |dd
           t          |j        ddd          }|                     |d           |                     |dd           t          ddgddgd          }d}t          j        t          |          5  |j        
                    d           d d d            n# 1 swxY w Y   t          t          j                            dd          t          t          j        d d                             }t          |j        d          }|                     |d           t          |j        g d           t          |j        g d           t          |j        dd           t          |j        ddd           |                    dd          }|                     |dd            |d d         D ]}|                     |j                   |                     |                                d!           |                     |                    d"          d!           |                     |j                                        gd!           |d         fD ]}|                     |j                   |                     |                                           |                     |j                                        g           |                     |d           t          |j        d#           t+          t          j        d d         t-          d                    }t          t          j                            dd          t/          j        |                    }t          |j        d          }|                     |d           t/          j        g d$d%d&g'          }t/          j        d(d)gd*d+g'          }t          t          j                            ddd,          ||-          }t          |j        d.#           t          d/t          j                            d          i          }t          |j        j        d0          }|                     |dd1           t          |j        j        dd23          }|                     |dd1           | j                                        \  }}|j                            d|4          }t;          |          dk    sJ |j        }	|	|d         u sJ d S )5NF)gridTdefault_axessubplots   r      axes_numlayout)   )r   r   r   r    r    )r   r   	use_indexr   xrotr   r       xyz''Line2D' object has no property 'blarg'match)blarg
   index)r"   )r      r,   )yticks)xticks)id   )ylimxlimblah)r   r   title)r   r6   r%   r   visibleminor)r6   ))   αr   )r<   r   )   βr    )r=   r%   )   γr   )r>   r/   )   δ   )r?      i0i1)names)baru   Δ)rE   u   Εc0c1)   r    columnsr.   u   Σr'   r   r   r   )r   r   )r   r   r   ax)tmmakeTimeDataFramer   plot_check_axes_shape_check_ticks_propsr   pytestraisesAttributeErrorlinenprandomrandliststringascii_letters_check_visiblexaxisget_xticklabels	get_labelzipranger   from_tuplesrandintrE   pltr   lenaxes)
selfdfrh   msgrN   tuplesr.   rJ   figresults
             b/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/plotting/frame/test_frame.py	test_plotzTestDataFramePlots.test_plot)   s    !##"'.... !tdKKKta??? G	
 
 
 	ta??? G	
 
 
 	1---ta???aV1a&11227]>555 	% 	%GLLtL$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ry~~b!,,D9Mcrc9R4S4STTTrw$777+++"'***5555"'***5555"'+FFFF"'t6RRRR wwFw33ta???rr( 	G 	GB))) 2 2 4 4eDDD 2 2 2 > >NNN!3!3!5!5 6FFFF7) 	0 	0B))) 2 2 4 4555!3!3!5!5 6777##BQ#////"'0000V)#2#.b		::ry~~b!,,J4J64R4RSSSrw$777+++ &	 	 	 ,
 
 
 ( 124,
 
 
 ry((B77PUVVV"'2222 RY^^B//011 t<<<ta??? tGLLLta??? (##%%Rw{{DR{004yyA~~~~a      s   D++D/2D/c                    g d}t          g dg dt          j        ddt          j        ddgt                    t          j        |d	                              d
          t          j        |dd                              d
          d          }t          |j	        dd           t          |ddg         j	        dd           t          |ddg         j	        dd           t          |ddg         j	        dd           t          |ddg         j	        dd           t          |ddg         j	        dd           t          |ddg         j	        dd           d S )N)20082009N20112012r   r    r%   r   r/   rA   r/   r%   r    dtypez%Y)formati8T)ry   utcABCDEr}   r~   r&   r   r   r   )
r   rX   arraynanobjectpdto_datetimeviewr   rQ   )ri   datesrj   s      ro   test_nullable_int_plotz)TestDataFramePlots.test_nullable_int_plot   st   666$__$__Xq!RVQ2&AAA^E$777<<TBB^E$DAAAFFtLL 
 
 	"'SC0000"c3Z.-<<<<"c3Z.-<<<<"c3Z.-<<<<"c3Z.-<<<<"c3Z.-<<<<"c3Z.-<<<<<<    c                 |   t          j        g dd          }t          |          }t          |j        j                   t          |j        j                   t          |j        j                   t          |j        j                   t          ||d          }t          |j        j                   t          |j        j                   t          |j        j                   t          |j        j        d           t          |j        j
        dd           t          |j        j        dd           d S )Nr   r    r%   r   UInt32rw   r&   r(   r(   r'   )r   r   r	   r   rQ   rW   rE   histpier   scatterhexbin)ri   arrsrj   s       ro   test_integer_array_plotz*TestDataFramePlots.test_integer_array_plot   s	    h|||84443KK!&+&&&!&*%%%!&+&&&!&*%%%Ss++,,"','''"'+&&&"','''"'+----"'/SC8888"'.C3777777r   c                     t          g dg dd          }|                                }t          |                                          dk    sJ d S )Nr'   r(   zr   r    r%   r}   r~   r   )r   rQ   rg   	get_linesri   rj   rN   s      ro   test_nonnumeric_excludez*TestDataFramePlots.test_nonnumeric_exclude   sS    ___999==>>WWYY2<<>>""a''''''r   c                     t          t          j                            dd          g d          }|                    dd          }|                     |j                                        d           d S )Nr,   r%   abcrJ   r   r   r&   )r   rX   rY   randnrQ   _check_text_labelsr_   ra   r   s      ro   test_implicit_labelz&TestDataFramePlots.test_implicit_label   sg    ryr1--GGGWWscW"" 2 2 4 4c:::::r   c                     t          t          j                            dd          ddg          }d|j        _        |                    dd           |j        j        dk    sJ d S )Nr    r   r   r   NAMELABEL)r(   label)r   rX   rY   r   r.   namerQ   ri   rj   s     ro   test_donot_overwrite_index_namez2TestDataFramePlots.test_donot_overwrite_index_name   sb    ryq!,,sCjAAA
#W%%%x}&&&&&&r   c                    t          j                    }|                     |                    dd          |                    d          d                                                    |                     |                    d          |                    d                                                     |                     |                    d          |j                                                   |                     |                    dd          |                    d          j                                                   |                     |                    d          |                    d                                                     |                     |                    d          |j                                                   t          j        dt          |j	                  dz             |_	        |                     |                    dd          |                    d          d                                                    |                     |                    d          |                    d                                                     |                     |                    d          |d                                                    |                    ddd	d
          }| 
                    |j        d	           |                     |ddd           d S )Nr   r   r&   r}   r~   r'   r   r    Test)   rH   )r'   r(   r6   figsizerL   )g      0@g       @)r   r   r   )rO   rP   _check_datarQ   	set_indexr~   rX   arangerg   rJ   r   r6   rR   r   s      ro   test_plot_xyzTestDataFramePlots.test_plot_xy   s   !##1**BLL,=,=c,B,G,G,I,IJJJ1r||C'8'8'='='?'?@@@1rtyy{{3333#..S0A0A0C0H0H0J0JKKK3c):):)?)?)A)ABBB3555 Yq#bj//A"566
1**BLLOOA,>,C,C,E,EFFF1r||A';';'='=>>>1r!uzz||444 WWqAVWW==&111rAfkRRRRRr   zinput_log, expected_log)Tlog)symsymlogc                 T   t          dt          j        d          it          j        d                    }|                    |          }|                     ||           |                                |k    sJ |                    |          }|                     ||           |                                |k    sJ |                    |          }|                     |||	           |                                |k    sJ |                                |k    sJ d S )
Nr   r2   r-   logyyaxis)logxr_   loglog)r_   r   )r   rX   r   rQ   _check_ax_scales
get_yscale
get_xscale)ri   	input_logexpected_logrj   rN   s        ro   test_logscalesz!TestDataFramePlots.test_logscales   s    RYs^^,BIcNNCCCWW)W$$b555}},....WW)W$$b555}},....WWIW&&bLIII}},....}},......r   input_param)r   r   r   c                     t          dt          j        d          it          j        d                    }d}t          j        t
          |          5   |j        di |di d d d            d S # 1 swxY w Y   d S )Nr   r2   r-   z9Boolean, None and 'sym' are valid options, 'sm' is given.r)   sm )r   rX   r   rT   rU   
ValueErrorrQ   )ri   r   rj   rk   s       ro   test_invalid_logscalez(TestDataFramePlots.test_invalid_logscale   s     RYs^^,BIcNNCCCI]:S111 	+ 	+BG**{D)***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   A22A69A6c                    t          j                    }|                    d          }|                                }t	          |d                                         t                    rJ |                     |d           t          j                     dt          j
        d<   |                                }|                                }t	          |d                                         t                    rJ |                     |d           t          j                     dt          j
        d<   |                                }|                                }t	          |d                                         t                    rJ t	          t          |d                                                   t                    sJ t          j                     t          j
                            dd          5  |                                }|                                }t	          |d                                         t                    rJ |                     |d           d d d            n# 1 swxY w Y   t          j                     |                                }|                                }t	          |d                                         t                    rJ t	          t          |d                                                   t                    sJ |                     |d           d S )	NT)x_compatr      r#   zxaxis.compatFr   )rO   rP   rQ   r   
isinstance	get_xdatar   rS   closer   plot_paramsuse)ri   rj   rN   liness       ro   test_xcompatzTestDataFramePlots.test_xcompat   s   !##WWdW##eAh0022K@@@@@,,,



/3^,WWYYeAh0022K@@@@@,,,



+0Z(WWYYeAh0022K@@@@@+eAh&8&8&:&:;;[IIIII



!%%j$77 	1 	1BLLNNE!%("4"4"6"6DDDDD##BR#000		1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	


WWYYeAh0022K@@@@@+eAh&8&8&:&:;;[IIIII+++++s   <A/I77I;>I;c                 F   t          t          j                            dd          t	          t          ddd          t          ddd                    ddg          }|                                 | j                            d	
           t          j
                     d S )N   r      r      r   r   r.   rJ   r   r   )r   rX   rY   rZ   r
   r   rQ   rf   axhlinerO   r   r   s     ro   test_period_compatz%TestDataFramePlots.test_period_compat#  s     INN2q!!htQ22HT1b4I4IJJ#J
 
 
 				1





r   c                 ^   t          dt          j        d          it          j        ddd          t          j                  }|                                }|                                d         }|                                }t          |d d df         |d d df         t          j        d          }t          j	        ||j
        d	
           t          j                     t          j        t          j        ddd          t          j                  |_        |                                }|                                d         }|                                }t          |d d df         |d d df         t          j        d          }t          j	        ||j
                   d S )Nr(   r2   c   r   )r.   rx   r   r   )rx   r   F)check_index_typerw   )r   rX   r   int64rQ   r   
get_xydatar	   rO   assert_series_equalr(   r   r   Indexfloat64r.   )ri   rj   rN   r   rss        ro   test_unsorted_indexz&TestDataFramePlots.test_unsorted_index0  sb   ")C..!2r2)>)>bh
 
 
 WWYYq!Bqqq!tHbAhbhSAAA
r24%@@@@



8BIb"b11DDDWWYYq!Bqqq!tHbAhbhSAAA
r24(((((r   c           
         t          dg dig d          }|                                }|                                \  }}|                                }|t	          j        |d                                         d                   k    sJ |t	          j        |d                                         d                   k    sJ t          dddt          j        dd	d
dgiddddt          j        ddg          }|                                }|                                \  }}|                                }|t	          j        |d                                         d                   k    sJ |t	          j        |d                                         d                   k    sJ t          g dg dd          }|                    dd          }|                                \  }}|                                }|t	          j        |d                                         d                   k    sJ |t	          j        |d                                         d                   k    sJ d S )Nr(                 ?       @      @)r   r   r   r   r-   r   r   r   r   g      @g      @g      @r   )g     V@g     V@g     @W@g      W@)r(   r   r   r&   )	r   rQ   get_xlimr   rX   nanminget_datananmaxr   )ri   rj   rN   xminxmaxr   s         ro   test_unsorted_index_limsz+TestDataFramePlots.test_unsorted_index_limsB  s<   1112:N:N:NOOOWWYY[[]]
dryq!2!2!4!4Q!7888888ryq!2!2!4!4Q!78888883RVS#sC89S#rvsC8
 
 
 WWYY[[]]
dryq!2!2!4!4Q!7888888ryq!2!2!4!4Q!78888881118P8P8PQQRRWWscW""[[]]
dryq!2!2!4!4Q!7888888ryq!2!2!4!4Q!788888888r   c                    t          t          j                            dd          t	          t
          j        d d                   g d           }d}t          j        t          |          5  |j
                            d           d d d            n# 1 swxY w Y   t          j        t          |          5  |j
                            d	           d d d            d S # 1 swxY w Y   d S )
Nr@   r   r'   r(   r   fourr   z+Log-y scales are not supported in area plotr)   Tr   r   )r   rX   rY   rZ   r[   r\   r]   rT   rU   r   rQ   areari   rj   rk   s      ro   test_negative_logz$TestDataFramePlots.test_negative_log[  sd   INN1a  v+BQB/00+++
 
 
 

 <]:S111 	$ 	$GLLdL###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$]:S111 	& 	&GLLL%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s$   0BBB>C''C+.C+c                 H   t          j        t          |d                                         d                             }t	          ||          D ]Q\  }}||                                d         z  }|                                d         }t          j        ||           Rd S )Nr   r   )rX   zerosrg   r   rb   rO   assert_numpy_array_equal)ri   normal_linesstacked_linesbasenlslsys          ro   _compare_stacked_y_coodz*TestDataFramePlots._compare_stacked_y_coodg  s    xLO4466q9::;;,66 	2 	2FBBKKMM!$$Dq!B'b1111	2 	2r   kindrW   r   c                 j   t           j                            d          }t          |                    dd          g d          }| }t          |                    d          |                    d          |                    d           |                    d           d          }t          |                    dd          t          t          j        d d                   g d          }t          |j
        |d          }t          |j
        |d	          }|                     |j        |j                   t          |j
        |d          }t          |j
        |d	          }|                     |j        |j                   t          |j
        |d          }t          |j
        |d	          }|                     |j        d d
         |j        d d
                    |                     |j        d
d          |j        d
d                     t          |j
        d           d}	t          j        t          |	          5  |
                    d	           d d d            n# 1 swxY w Y   |                    |j        dz             }
t          |
j
        |d	d	           d S )N*   r@   r   )wr'   r(   r   r   r   F)r  stackedTr    r  zWhen stacked is True, each column must be either all positive or all negative. Column 'w' contains both positive and negative valuesr)   r   )r  r   r  )rX   rY   RandomStater   rZ   r   r[   r\   r]   r   rQ   r  r   rT   rU   r   r   r.   )ri   r  	np_randomrj   neg_dfsep_dfmixed_dfax1ax2rk   df2s              ro   test_line_area_stackedz)TestDataFramePlots.test_line_area_stackedn  s   I))"--	y~~a++5I5I5IJJJ^^A&&^^A&&nnQ'''nnQ'''	 
 
 OOAq!!v+BQB/00(((
 
 
  dEBBBdDAAA$$SY	:::$FFF$EEE$$SY	:::$FFF$EEE$$SYrr]CIbqbMBBB$$SYqrr]CIabbMBBB(-7777 	
 ]:S111 	( 	(MM$M'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
 ll28a<((#(D$GGGGGGs   I33I7:I7c                    ddt           j        dg}dt           j        ddg}t          ||d          }t          ||dt          j        d                    }||fD ]}t          |j                  }|j        d                                         }|j        d                                         }t          j	        g d	t           j
        
          }	t          j        t          j        |j        d          |	           t          j	        g dt           j
        
          }	t          j        t          j        |j        d          |	           t          j        |j        t          j	        g d                     t          j        |j        t          j	        g d                     t          j	        g dt           j
        
          }
t          j	        g dt           j
        
          }t          |j        d          }t          j        |j        d                                         |
           t          j        |j        d                                         |
|z              t          |j        j                  }t          j        |j        d                                         |
           t          j        |j        d                                         |
|z              t          |j        j        d          }t          j        |j        d                                         |
           t          j        |j        d                                         |           d S )Nr   r    r%   r   r   r   )kr-   r   r   rw   )r%   r    r   )FFTF)FTFF)r   r    r   r%   )r%   r   r    r   Tr  F)rX   r   r   rO   makeDateIndexr   rQ   r   	get_ydatar   r   r   deletedatamaskr   )ri   values1values2rj   tdfdrN   masked1masked2exp	expected1	expected2s               ro   test_line_area_nan_dfz(TestDataFramePlots.test_line_area_nan_df  s   a#bfa#W73344gG44B<Lq<Q<Q<QRRRc 	L 	LA"16**Bhqk++--Ghqk++--G (999BJ777C'	',(B(BCHHH(999BJ777C'	',(B(BCHHH'bh'B'B'BCC   'bh'B'B'BCC   RZ@@@IRZ@@@I"164888B'(=(=(?(?KKK'(=(=(?(?YAVWWW"16;//B'(=(=(?(?KKK'(=(=(?(?YAVWWW"16;>>>B'(=(=(?(?KKK'(=(=(?(?KKKK?	L 	Lr   c                 ~   t          t          j                            dd          g d          }|                                }|                                \  }}|                                }||d                                         d         d         k    sJ ||d                                         d         d         k    sJ |                    d          }|                                \  }}|                                }||d                                         d         d         k    sJ ||d                                         d         d         k    sJ |                    dd	          }|                     |dd
           |D ]}t          |d          sJ t          |d          rJ |                                \  }}|                                }||d                                         d         d         k    sJ ||d                                         d         d         k    sJ d S )Nr@   r%   r   r   r   r   T)secondary_y)r)  r   r7   r   left_axright_ax)
r   rX   rY   rZ   rQ   r   r   r   rR   hasattr)ri   rj   rN   r   r   r   rh   s          ro   test_line_limz TestDataFramePlots.test_line_lim  s   ry~~a++___EEEWWYY[[]]
duQx((**1-a00000uQx((**1-b11111WWW&&[[]]
duQx((**1-a00000uQx((**1-b11111ww4$w77ta??? 	6 	6B2y)))))r:.....JD$LLNNE58,,..q1!4444458,,..q1"555555	6 	6r   FzX2020-12-01 this has been failing periodically on the ymin==0 assertion for a week or so.)strictr   r  Tc                 \   t          t          j                            dd          g d          }| }t	          |j        j        |          }|                                \  }}|                                \  }}|	                                }	||	d         
                                d         d         k    sJ ||	d         
                                d         d         k    sJ |dk    sJ t	          |j        j        |          }|                                \  }}|dk    sJ d S )Nr@   r   r   r   r  r   r   )r   rX   rY   rZ   r   rQ   r   r   get_ylimr   r   )
ri   r  rj   r  rN   r   r   yminymaxr   s
             ro   test_area_limz TestDataFramePlots.test_area_lim  s    ry~~a++5L5L5LMMMrw|W===[[]]
d[[]]
duQx((**1-a00000uQx((**1-b11111qyyyyv{/AAA[[]]
dqyyyyyyr   c                    t          t          j                            dd          ddg          }| j                            ddd          \  }\  }}|                    |d	
           |                    |d	
           |                     |                              ||          sJ |                     |                              ||          sJ d S )Nr   r    r'   r(   r   r   T)shareyr   )rN   r  )	r   rX   rY   rZ   rf   r   rQ   
get_y_axisjoined)ri   rj   rm   r  r  s        ro   test_area_sharey_dont_overwritez2TestDataFramePlots.test_area_sharey_dont_overwrite  s    ry~~a++c3Z@@@(++Aq+>>Zc3
3V$$$
3V$$$s##**344444s##**34444444r   c                    t          t          j                            dd                    }|j                            d          }|j        D ]}|                                dk    sJ |j                            dd          }|j        D ]}|                                dk    sJ |j                            dd          }|                     |dd           |D ]&}|j        D ]}|                                dk    sJ 'd S )	Nr/   r    )	linewidthT)r  r:  )r:  r   )r/   r   r   )	r   rX   rY   r   rQ   rE   patchesget_linewidthrR   )ri   rj   rN   rrh   s        ro   test_bar_linewidthz%TestDataFramePlots.test_bar_linewidth  s.   ryq!,,-- W[[1[%% 	* 	*A??$$))))) W[[[33 	* 	*A??$$))))) w{{Q{66ta??? 	. 	.BZ . .((A-----.	. 	.r   c                    t          t          j                            dd                    }d}|j                            |          }|j        D ]1}|                                |t          |j	                  z  k    sJ 2|j                            d|          }|j        D ]}|                                |k    sJ |j        
                    |          }|j        D ]1}|                                |t          |j	                  z  k    sJ 2|j        
                    d|          }|j        D ]}|                                |k    sJ |j                            |d          }|D ]&}|j        D ]}|                                |k    sJ '|j        
                    |d          }|D ]&}|j        D ]}|                                |k    sJ 'd S )Nr/   g?)widthT)r  r@  )r@  r   )r   rX   rY   r   rQ   rE   r;  	get_widthrg   rJ   barh
get_height)ri   rj   r@  rN   r=  rh   s         ro   test_bar_barwidthz$TestDataFramePlots.test_bar_barwidth  s   ryq!,,-- W[[u[%% 	< 	<A;;==EC
OO$;;;;;; W[[U[33 	* 	*A;;==E))))) W\\\&& 	= 	=A<<>>US__%<<<<<< W\\$e\44 	+ 	+A<<>>U***** w{{{66 	. 	.BZ . .{{}}-----. w||%$|77 	/ 	/BZ / /||~~...../	/ 	/r   c                    t          t          j                            dd                    }|j                            dd          }d |j        D             }|dgdz  k    sJ |j                            dg d          }d	 |j        d d         D             }|g dk    sJ |j                            dt          j        g d
                    }d |j        D             }|dgdz  k    sJ |j                            dg d          }d |j        d d         D             }|g dk    sJ |j                            dd          }|D ]}d |j        D             }|dgdz  k    sJ  |j                            dt          j        g d
                    }|D ]}d |j        D             }|dgdz  k    sJ  d S )Nr/   Fr   )r  bottomc                 6    g | ]}|                                 S r   get_y.0ps     ro   
<listcomp>z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>;       000!''))000r      T)r   c                 6    g | ]}|                                 S r   rH  rJ  s     ro   rM  z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>?       444!''))444r   )r   r   r   r   r   )r  leftc                 6    g | ]}|                                 S r   get_xrJ  s     ro   rM  z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>C  rN  r   rv   c                 6    g | ]}|                                 S r   rX  rJ  s     ro   rM  z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>G  rU  r   r   )r   rF  c                 6    g | ]}|                                 S r   rH  rJ  s     ro   rM  z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>L       444Aaggii444r   )r   rV  c                 6    g | ]}|                                 S r   rX  rJ  s     ro   rM  z;TestDataFramePlots.test_bar_bottom_left.<locals>.<listcomp>Q  r\  r   )	r   rX   rY   rZ   rQ   rE   r;  rB  r   )ri   rj   rN   rn   rh   s        ro   test_bar_bottom_leftz'TestDataFramePlots.test_bar_bottom_left8  s   ry~~a++,,W[[q[1100RZ000!r!!!!W[[.B.B.B[CC44RZ^444-------W\\%bh.G.G\HH00RZ000!r!!!!W\\$___\==44RZ^444((((w{{D{44 	& 	&B44444FbTAX%%%%%w||T0I0I|JJ 	% 	%B44444FaS1W$$$$$	% 	%r   c                 \   t          dt          j        dgg dg dd          }|j                                        }g d}d |j        D             }||k    sJ |j                            d	          }d
 |j        D             }||k    sJ d |j        D             }g d}||k    sJ d S )Nr,      )r/   r,   r`  r   r}   r~   r   )	r,   r   r`  r/   r,   r`  r   r    r%   c                 6    g | ]}|                                 S r   rC  rJ  s     ro   rM  z3TestDataFramePlots.test_bar_nan.<locals>.<listcomp>X       555Q!,,..555r   Tr  c                 6    g | ]}|                                 S r   rc  rJ  s     ro   rM  z3TestDataFramePlots.test_bar_nan.<locals>.<listcomp>\  rd  r   c                 6    g | ]}|                                 S r   rH  rJ  s     ro   rM  z3TestDataFramePlots.test_bar_nan.<locals>.<listcomp>_  rN  r   )	r   r   r         $@r   g      4@g      .@rg  g      D@)r   rX   r   rQ   rE   r;  )ri   rj   rN   expectedrn   s        ro   test_bar_nanzTestDataFramePlots.test_bar_nanT  s    b"&"-KKKiiiPPQQW[[]]22255"*555!!!!W[[[&&55"*555!!!!00RZ000EEE!!!!!!r   c           	         t          t          j                            dd          t	          j        t          d                    t	          j        t          d                              }t          t          j                            dd          t	          j        t          d                    t	          j        t          d                              }||fD ]j}|j        	                                }|j
                                        }t          j        |t          j        g d                     |                                dk    sJ |j        d                                         d	k    sJ |j        d
                                         dk    sJ |j        	                    d          }t          j        |t          j        g d                     |                                dk    sJ |j        d                                         d	k    sJ |j        d
                                         dk    sJ ld S )Nr@   r/   ABCDEFabcder   )r   r   r    r%   r   r/   )g      g      @r   g      пr   g@Tr  g      @)r   rX   rY   r   r   r   r[   CategoricalIndexrQ   rE   r_   get_ticklocsrO   r   r   r   r;  rY  )ri   df1r  rj   rN   tickss         ro   test_bar_categoricalz'TestDataFramePlots.test_bar_categoricalc  s   IOOAq!!(4>>**HT']]++
 
 
 IOOAq!!%d8nn55'W66
 
 
 * 	2 	2BBH))++E'rx8J8J8J/K/KLLL;;==K////:a=&&((E1111:b>''))T1111T**B'rx8J8J8J/K/KLLL;;==K////:a=&&((E1111:b>''))T11111	2 	2r   c                    t          t          j                            dd          t	          t
          j        d d                   g d          }t          |j        j	        dd           t          |j        j	        dd	           t          j        d
          }t          j        t          |          5  |j        	                    d           d d d            n# 1 swxY w Y   t          j        d          }t          j        t          |          5  |j        	                    d           d d d            n# 1 swxY w Y   |                    dddd          }|                     |dd           d S )Nr@   r   r   r   r'   r(   r&   r   r    z5scatter() missing 1 required positional argument: 'y'r)   r   z5scatter() missing 1 required positional argument: 'x'r   r   T)r'   r(   r  r   rL   r   )r   rX   rY   r   r[   r\   r]   r   rQ   r   reescaperT   rU   	TypeErrorrR   )ri   rj   rk   rh   s       ro   test_plot_scatterz$TestDataFramePlots.test_plot_scatter  s   IOOAq!!v+BQB/00+++
 
 
 	"'/SC8888"'/Q!4444iOPP]9C000 	# 	#GOOcO"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#iOPP]9C000 	# 	#GOOcO"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# ww)dwCCta?????s$   9C!!C%(C%EE
Ec                 4   t          t          j                            d          dg          }t	          ddd          j        |d<   d}t          j        t          |	          5  |	                    d
dd           d d d            d S # 1 swxY w Y   d S )Nr,   r   r   z
2014-01-01h)startfreqperiodsdtimez9must be a string or a (real )?number, not 'datetime.time'r)   r   )r  r'   r(   )
r   rX   rY   r   r   timerT   rU   ru  rQ   r   s      ro   &test_raise_error_on_datetime_time_dataz9TestDataFramePlots.test_raise_error_on_datetime_time_data  s    ryr**SE::: |#rJJJO7I]9C000 	6 	6GGgG555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6   'BBBc                 8   t          t          ddd          dd          }t          j                            ddt          |                    }t          ||d          }t          |j        j	        dd	
           t          |j        j	        dd
           d S )Ni  r      W)ry  r{  rz  r   )r   valsr   r  r&   )
r   r   rX   rY   normalrg   r   r   rQ   r   )ri   r   r  rj   s       ro   test_scatterplot_datetime_dataz1TestDataFramePlots.test_scatterplot_datetime_data  s    dAq!1!12CHHHy1c%jj115566"'/W????"'/Q!444444r   c                 >   t          g dg dd          }t          |j        j        dd           t          |j        j        dd           t          g dg d	d          }t          |j        j        dd           t          |j        j        dd           d S )
Nra  r    r%   r   r  r   r   r&   r   r   r   )r   r   rQ   r   r   s     ro   test_scatterplot_object_dataz/TestDataFramePlots.test_scatterplot_object_data  s    ___999==>>"'/SC8888"'/Q!4444___???CCDD"'/SC8888"'/Q!444444r   ordered
categories)setosa
versicolor	virginica)r  r  r  c                 Z   t          ddgddgddgddgddggd	d
g          }t          j        g d||          |d<   |j                            ddd          }|j        \  }|j        }t          j        g d          }|	                                }t          j        ||           t          j        g d          }	|j        }
t          j        |
|	           |}d |j                                        D             }t          d t!          ||          D                       sJ d S )Ngffffff@g      @g@r   g      @g	@g@g@lengthr@  r   )r  r  r  r  r  )r  r  speciesr   r   r'   r(   r   )      ?g      ?g      @r   c                 6    g | ]}|                                 S r   get_text)rK  is     ro   rM  zLTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<listcomp>  s     WWWqajjllWWWr   c              3   (   K   | ]\  }}||k    V  d S Nr   )rK  r  js      ro   	<genexpr>zKTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<genexpr>  s*      TTda16TTTTTTr   )r   r   CategoricalrQ   r   collectionscolorbarrX   r   	get_ticksrO   r   _boundariesrN   get_ymajorticklabelsallrb   )ri   r  r  rj   rN   colorbar_collectionr  expected_ticksresult_ticksexpected_boundariesresult_boundariesexpected_yticklabelsresult_yticklabelss                ro   %test_scatterplot_color_by_categoricalz8TestDataFramePlots.test_scatterplot_color_by_categorical  sd    3Z#sc3Z#sc3ZHw'
 
 
 HHH!
 
 
9
 W__qA_33!#	&////22))++
#L.AAA h';';';<<$0
#$57JKKK)WWHK4T4T4V4VWWWTTc*<>R&S&STTTTTTTTTTr   zx, y)r&   )r(   r'   )r(   r(   c                     t          g dt          j        g d          d          }t          |j        j        ||           d S )Nr   )r   r   r   r   r&   )r   r   r  r   rQ   r   ri   r'   r(   rj   s       ro   'test_plot_scatter_with_categorical_dataz:TestDataFramePlots.test_plot_scatter_with_categorical_data  sM     \\\?S?S?S0T0TUUVV"'/Q!444444r   c                    t          t          j                            ddd          t	          t
          j        d d                   g d          }|j                            dd	d
          |j                            ddd          g}|D ]N}|j	        d         j
        j        dk    sJ |j	        d         j        j                                        d
k    sJ Od}|j                            dd	d
|          }|j	        d         j
        j        |k    sJ |j                            dd	d
d          }|j	        d         j        J |j                            ddd          }|j	        d         j        J |                     |j	        dg           t          ddgddgd          }g d}g d}t          j        ||g          }|j                            dd|          }t#          j        |j	        d                                         |           t          j        ddg          }|j                            dd|d            d S )!Nr   r2   )r@   r   )lowhighsizer@   r   r   r'   r(   r   r  r   r    Greys	cubehelix)r'   r(   r   colormapF)r'   r(   r   r  redr=  
facecolorsr%   r   r   )r   r   r   r   )r   r   r   r   r}   r~   r   r   spring)r'   r(   r   cmap)r   rX   rY   re   r[   r\   r]   rQ   r   r  r  r   r  rN   
get_ylabel_check_colorsr   rO   r   get_facecolor)	ri   rj   rh   rN   cmred_rgba
green_rgba
rgba_arrayfloat_arrays	            ro   test_plot_scatter_with_cz+TestDataFramePlots.test_plot_scatter_with_c  sa   I!#F;;v+BQB/00+++
 
 
 #44bgooQRSo6T6TU 	E 	EB>!$).'9999>!$-0;;==DDDDDW__scS2_>>~a %*b0000 W__scS5_AA~a )111 W__qA_//~a )1112>se<<< aV1a&1122''')))
Xx455
W__scZ_88
 	#BN1$5$C$C$E$EzRRR hSz**
#(CCCCCr   c                 "   t          t          j                            d          dz  g d          }|j                            ddd          }t          j        |d         j        |j        d	         	                                
           d S )Nr,   r%   r2   r   r   r   r   r   )r'   r(   r   r   )right)
r   rX   rY   rQ   r   rO   r   valuesr  	get_sizesr   s      ro   test_plot_scatter_with_sz+TestDataFramePlots.test_plot_scatter_with_s
  s{    ry''0036PPPW__scS_11
#BsGN".:K:U:U:W:WXXXXXXr   c                    dd l }t          t          j                            d          dz  g d          }|j                                        }|j                            ddd|	          }|j        d         j	        |u sJ d S )
Nr   r  r2   r   r   r   r   r   )r'   r(   r   norm)

matplotlibr   rX   rY   colorsLogNormrQ   r   r  r  )ri   mplrj   r  rN   s        ro   test_plot_scatter_with_normz.TestDataFramePlots.test_plot_scatter_with_norm  s        ry''0036PPPz!!##W__scSt_<<~a %------r   c                    dd l }t          t          j                            d          dz  g d          }|j                            ddd	          }|j        d         j        }|j        	                                |j        
                                f} |j        j        | }|j        D ]} ||           ||          k    sJ d S )
Nr   r  r2   r   r   r   r   r   r  )r  r   rX   rY   rQ   r   r  r  r   minmaxr  	Normalize)ri   r  rj   rN   	plot_normcolor_min_maxdefault_normvalues           ro   test_plot_scatter_without_normz1TestDataFramePlots.test_plot_scatter_without_norm  s        ry''0036PPPW__scS_11N1%*	RTXXZZ0+sz+];T 	; 	;E9U##||E':'::::::	; 	;r   c                 (   t          t          j                            dd          t	          t
          j        d d                   g d          }t          |j        j	                   t          |j        j	        d           t          |j        j	        dd           t          |j        j	        d	           t          t          j                            d
d          t	          t
          j        d d
                   t          d                    }t          |j        j	                   t          ddgddgd          }t          |j        j	                  }|                     |d           |j        	                    dd
          }|                     |dd
d
           t          |j        j                  }|                     |d           |j                            dd          }|                     |ddd           d S )Nr@   r   onetwothreer   r   FlegendTr   r  r,      r   r   r  Z   r#   #   )rotfontsizer$   
xlabelsize
ylabelsize)yrot7      )r  r  r  )r   rX   rY   r   r[   r\   r]   r   rQ   rE   rc   rS   rB  r   s      ro   test_plot_barz TestDataFramePlots.test_plot_bar&  s   IOOAq!!v+BQB/00333
 
 
 	"'+&&&"'+e4444"'+D4HHHH"'+t4444IOOB##v+CRC011"II
 
 

 	"'+&&&aV1a&1122rw{++,,,W[[R"[--rJJJrw|,,+++W\\b2\..rJJJJJr   c           	      d   |}|d         }|                                 j        }d |D             }t          |j        j                  }|                     |                                |           t          j        |j	        
                                t          j        dt          |          dz                        t          |j                  dt          |          z  k    sJ t          j                     |j                            d          }|                     |dd           t          j                     t          |j        j                  }t          j        g d	          }|j                            |
          }|                                 j        }d |D             }|                     |                                |           t          j        |j	        
                                |           t          |j                  dt          |          z  k    sJ d S )Nheightc                 ,    g | ]}t          |          S r   r   rK  r   s     ro   rM  z3TestDataFramePlots.test_boxplot.<locals>.<listcomp>K      888a,q//888r   r   rA   (   r  r   r$   r  )r   r@   rA   )	positionsc                 ,    g | ]}t          |          S r   r   r  s     ro   rM  z3TestDataFramePlots.test_boxplot.<locals>.<listcomp>^  r  r   )_get_numeric_datarJ   r   rQ   boxr   r`   rO   r   r_   rn  rX   r   rg   r   r   rS   r   )	ri   hist_dfrj   seriesnumeric_colslabelsrN   rh   r  s	            ro   test_boxplotzTestDataFramePlots.test_boxplotG  s   H++--588<888rw{++ 2 2 4 4f===
#H!!##RYq#l2C2Ca2G%H%H	
 	
 	
 28}}C$5$5 55555



{2&&2A666



v{//HYYY''	W[[9[--++--588<888 2 2 4 4f===
#BH$9$9$;$;YGGG28}}C$5$5 5555555r   c                    |}|                                 j        }d |D             }|j                            ddd          }|                     |ddd           |                     |                                |           t          |j                  dt          |          z  k    sJ t          |j        j        d	d	dd	
          }| 
                    |dd           |                     |d           t          ||          D ]H\  }}|                     |                                |g           t          |j                  dk    sJ It          j        g d          }|j                            |d          }|                     |                                |           t          j        |j                                        |           t          |j                  dt          |          z  k    sJ d S )Nc                 ,    g | ]}t          |          S r   r   r  s     ro   rM  z<TestDataFramePlots.test_boxplot_vertical.<locals>.<listcomp>f  r  r   2   rH   F)r  r  vertr   r$   r  r  rA   T)r   r   r  r   r%   )r   r%   r   r   r   )r%   r    rH   )r  r  )r  rJ   rQ   r  rS   r   get_yticklabelsrg   r   r   rR   r   rb   rX   r   rO   r   r   rn  )	ri   r  rj   r  r  rN   rh   r   r  s	            ro   test_boxplot_verticalz(TestDataFramePlots.test_boxplot_verticalc  s   ++--588<888 W[[R!%[88BBB 2 2 4 4f===28}}C$5$5 55555 GK
 
 
 	ta???d%000T6** 	& 	&IB##B$6$6$8$85'BBBrx==A%%%%%HYYY''	W[[95[99 2 2 4 4f===
#BH$9$9$;$;YGGG28}}C$5$5 5555555r   c                    t          t          j                            dd          t	          t
          j        d d                   g d          }d}t          j        t          |          5  |j
                            d           d d d            n# 1 swxY w Y   |j
                            d	          }|                     |d	           |j
                            d
          }|                     |d
           |j
                                        }|                     |d
           |j
                            d          }|                     |d           d S )Nr@   r   r  r   z2return_type must be {None, 'axes', 'dict', 'both'}r)   
not_a_type)return_typedictrh   both)r   rX   rY   r   r[   r\   r]   rT   rU   r   rQ   r  _check_box_return_type)ri   rj   rk   rn   s       ro   test_boxplot_return_typez+TestDataFramePlots.test_boxplot_return_type  s   IOOAq!!v+BQB/00333
 
 

 C]:S111 	2 	2GKKLK111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 00##FF33300##FF333##FF33300##FF33333s   /BBBc                 *   t          t          j                            dd                    }t	          |j        d          }d |j        D             }|                     ||           |                     |d           |                    dd	d
          }|                     |d	d
d
           t	          |j        ddd          }| 	                    |dd           |                    ddd          }| 
                    |d           d S )Nr2   r   kder  c                 ,    g | ]}t          |          S r   r   r  s     ro   rM  z2TestDataFramePlots.test_kde_df.<locals>.<listcomp>      888LOO888r   r  r   r#   r`  r/   )r  r  r  r  T)r   r  r   r   r   )r  r   r   r   r   )r   rX   rY   r   r   rQ   rJ   _check_legend_labelsrS   rR   r   )ri   rj   rN   rh  rh   s        ro   test_kde_dfzTestDataFramePlots.test_kde_df  s#   rysA..//rwU33388RZ888!!"X!666+++WW%R!W44aHHH G	
 
 
 	ta???wwEtw<<d%00000r   c                     t          t          j                            d                    }t          j        |j        d<   t          |j        d           d S )N)r2   r   r  r   r   r  r  )r   rX   rY   uniformr   locr   rQ   r   s     ro   test_kde_missing_valsz(TestDataFramePlots.test_kde_missing_vals  sJ    ry((h(7788vt"'......r   c                    ddl m t          t          j                            dd                    }|d         }t          |j        j                  }d |j	        D             }| 
                    ||           t          |j        j        ddd          }|                     |dd	
           |                     |d           |j                            d          }|                     |dd           t          j                     |j                            ddd          }fd|                                D             }t          j        |d                                         d           t          j                     |j                            dd          }fd|                                D             }t          j        |d                                         d           t          j                     |j                            ddd          }|                     |ddd           d S )Nr   )	Rectangler2   r   c                 ,    g | ]}t          |          S r   r   r  s     ro   rM  z3TestDataFramePlots.test_hist_df.<locals>.<listcomp>  r  r   r  T)r   r   r   r   r   r   r   r  r  r  )
cumulativebinsdensityc                 4    g | ]}t          |          |S r   r   rK  r'   r  s     ro   rM  z3TestDataFramePlots.test_hist_df.<locals>.<listcomp>  (    JJJqAy1I1IJJJJr   r   r   )r  r  c                 4    g | ]}t          |          |S r   r  r   s     ro   rM  z3TestDataFramePlots.test_hist_df.<locals>.<listcomp>  r!  r   rP  g      Y@r  rH   
horizontal)r  r  orientationr   )matplotlib.patchesr  r   rX   rY   r   r   rQ   r   rJ   r  rR   r   rS   rO   r   get_childrenassert_almost_equalrC  )ri   rj   r  rN   rh  rh   rectsr  s          @ro   test_hist_dfzTestDataFramePlots.test_hist_df  s(   000000rysA..//Arw|,,88RZ888!!"X!666 GL	
 
 
 	ta???d%000{B''2A666



[AtDDJJJJBOO--JJJ
uRy3355s;;;



[A66JJJJBOO--JJJ
uRy3355u===



 w||QL|II12!DDDDDr   weights皙?r2   )shape)r2   r    c                    t           j                            d           t          t	          t          ddgt           j                            dd                                        }t          |j        d|          }t          |j        d          }d	 |j	        D             }d
 |j	        D             }t          j        ||           d S )Nr   r}   r~   r    r2   r   )r  r*  r  c                 6    g | ]}|                                 S r   rc  rK  patchs     ro   rM  z8TestDataFramePlots.test_hist_weights.<locals>.<listcomp>  s$    $Q$Q$QEU%5%5%7%7$Q$Q$Qr   c                 <    g | ]}d |                                 z  S )r+  rc  r0  s     ro   rM  z8TestDataFramePlots.test_hist_weights.<locals>.<listcomp>  s)     S S Seu'7'7'9'9!9 S S Sr   )rX   rY   seedr   r  rb   r   r   rQ   r;  rO   r'  )ri   r*  rj   r  r  patch_height_with_weightsexpected_patch_heights          ro   test_hist_weightsz$TestDataFramePlots.test_hist_weights  s    
 		qtCc
BIOOAs,C,CDDEEFFfgFFFf555$Q$QS[$Q$Q$Q! !T Ss{ S S S
8:OPPPPPr   Nc                    t          j        d |D                       }t          j        d |D                       }t          j        d |D                       }t          j        d |D                       }	|t          j        ||d           |t          j        ||d           |t          j        ||d           |t          j        |	|d           d S d S )Nc                 6    g | ]}|                                 S r   rH  rJ  s     ro   rM  z7TestDataFramePlots._check_box_coord.<locals>.<listcomp>       8881QWWYY888r   c                 6    g | ]}|                                 S r   rc  rJ  s     ro   rM  z7TestDataFramePlots._check_box_coord.<locals>.<listcomp>  s     !B!B!BQ!,,..!B!B!Br   c                 6    g | ]}|                                 S r   rX  rJ  s     ro   rM  z7TestDataFramePlots._check_box_coord.<locals>.<listcomp>  r9  r   c                 6    g | ]}|                                 S r   )rA  rJ  s     ro   rM  z7TestDataFramePlots._check_box_coord.<locals>.<listcomp>  s      @ @ @1 @ @ @r   F)check_dtype)rX   r   rO   r   )
ri   r;  
expected_y
expected_h
expected_x
expected_wresult_yresult_heightresult_xresult_widths
             ro   _check_box_coordz#TestDataFramePlots._check_box_coord  s    88888899!B!B'!B!B!BCC88888899x @ @ @ @ @AA !'*%PPPP!'zuUUUU!'*%PPPP!'jeTTTTTT "!r   c                    t          t          j        t          j        g d          t          j        g d                    t          j        t          j        g d          t          j        g d                    t          j        t          j        g d          t          j        g d                    dg d          }t          t          j        t          j        t          j        ddd	d
dg          t          j        g d                    t          j        t          j        dt          j        dd	d
dg          t          j        g d                    t          j        t          j        ddd	t          j        d
dg          t          j        g d                    dg d          }||fD ]}|j                            d          }|                     |j        d d         t          j        g d          t          j        g d                     |                     |j        dd         t          j        g d          t          j        g d                     |                     |j        dd          t          j        g d          t          j        g d                     |j                            dd          }|                     |j        d d         t          j        g d          t          j        g d                     |                     |j        dd         t          j        g d          t          j        g d                     |                     |j        dd          t          j        g d          t          j        g d                     |j                            ddd          }|                     |d         j        t          j        g d          t          j        g d                     |                     |d         j        t          j        g d          t          j        g d                     |                     |d         j        t          j        g d          t          j        g d                     |j                            dd          }|                     |j        d d         t          j        g d          t          j        g d                     |                     |j        dd         t          j        g d          t          j        g d                     |                     |j        dd          t          j        g d          t          j        g d                     |j                            ddd          }|                     |j        d d         t          j        g d          t          j        g d                     |                     |j        dd         t          j        g d          t          j        g d                     |                     |j        dd          t          j        g d          t          j        g d                     |j                            dddd          }|                     |d         j        t          j        g d          t          j        g d                     |                     |d         j        t          j        g d          t          j        g d                     |                     |d         j        t          j        g d          t          j        g d                     d S )Nrv   )r,   	   rH   rA   r@   )rH   rH   rH   rH   rH   )r@   rA   rH   rH  r,   ra  r   r   r    r%   r   r/   )r%   r,   rH  rH   rA   r@   )rH   r%   rH   rH   rH   rH   )r@   rA   rH   r%   rH  r,   )r  )r   r   r   r   r   )r>  r?  r,   T)r  r  )      r   r     )r  r  r   r   r#  )r  r$  )r@  rA  )r  r  r$  )r  r  r   r$  )	r   rX   repeatr   r   rQ   r   rF  r;  )ri   	normal_dfnan_dfrj   rN   rh   s         ro   test_hist_df_coordz%TestDataFramePlots.test_hist_df_coord  s   Yrx88"(CSCSCS:T:TUUYrx88"(???:S:STTYrx88"(CSCSCS:T:TUU 
 $OO
 
 
	 YHbfaAq!455rx@S@S@S7T7T  YHaAq!455rx@R@R@R7S7S  YHaArvq!455rx@S@S@S7T7T 
 
 $OO
 
 
 f% h	 h	B1%%B!!
2A28OOO448$4$4$455 "   
 !!
1R4 8OOO448OOO44 "   
 !!
2338OOO448$4$4$455 "    1d33B!!
2A28OOO448$4$4$455 "   
 !!
1R4 8$4$4$4558OOO44 "   
 !!
2338$8$8$8998$4$4$455 "    7<<Qt<DDD!!Q8OOO448$4$4$455 "   
 !!Q8OOO448OOO44 "   
 !!Q8OOO448$4$4$455 "    1,??B!!
2A28OOO448$4$4$455 "   
 !!
1R4 8OOO448OOO44 "   
 !!
2338OOO448$4$4$455 "    1dMMB!!
2A28OOO448$4$4$455 "   
 !!
1R4 8$4$4$4558OOO44 "   
 !!
2338$8$8$8998$4$4$455 "    7<<t    D !!Q8OOO448$4$4$455 "   
 !!Q8OOO448OOO44 "   
 !!Q8OOO448$4$4$455 "    Ih	 h	r   c                     t          t          j                            dd                                                    }t          |j        d           d S )Nr2   r   Tr  )r   rX   rY   r   cumsumr   rQ   r   s     ro   test_plot_int_columnsz(TestDataFramePlots.test_plot_int_columns  sF    rysA..//6688"'$//////r   c                    dd l m} |                                }t          t          j                            dd                    }dddddddg d	ddgfD ]}|                                 |                    d
           |	                    |          }t          |                                d t          |                             D ]%\  }}|                                ||         k    sJ &d S )Nr   r2   r%   ^+o)r   r   r    r   r   )rT  rU  rV  o   )style)matplotlib.pyplotpyplotgcfr   rX   rY   r   clfadd_subplotrQ   	enumerater   rg   
get_marker)ri   rf   rm   rj   markersrN   idxrW   s           ro   test_style_by_columnz'TestDataFramePlots.test_style_by_column  s   ''''''ggiirysA..//$$OO#J	
 
	9 
	9G GGIIIOOC   w''B&r||~~nGn'EFF 9 9	T((GCL888889
	9 
	9r   c                 0   t          ddg          }|                                }|                                J |                    d          }|                                                                d                                         dk    sJ d S )Nr   r    Tr  r    )r	   rQ   
get_legend	get_textsr  )ri   r   rN   s      ro   test_line_label_nonez'TestDataFramePlots.test_line_label_none  s    Aq6NNVVXX}}&&&VV4V  }}((**1-6688B>>>>>>r   zprops, expected))boxpropsboxes)whiskerpropswhiskers)cappropscaps)medianpropsmediansc                     t          d dD                       }|ddii} |j        j        dddi|}||         d                                         dk    sJ d S )	Nc                 N    i | ]"}|t           j                            d           #S r,  )rX   rY   )rK  r  s     ro   
<dictcomp>zHTestDataFramePlots.test_specified_props_kwd_plot_box.<locals>.<dictcomp>  s*    @@@Q29++C00@@@r   ABCcolorC1r  r  r   r   )r   rQ   r  	get_color)ri   propsrh  rj   kwdrn   s         ro   !test_specified_props_kwd_plot_boxz4TestDataFramePlots.test_specified_props_kwd_plot_box  sy     @@%@@@AAwo&777377h",,..$666666r   c           
         t          t          j        g d          t          ddd          t          ddd          t          ddd          gdg          }|                                }|j        d	                                         }|d	         |d         k     sJ |j        d	                                         }t          j	        |t          j        g d
                     d S )N)r   r   r     r,   r   rH  rH   testr   r   )r   r   r   )
r   rX   r   r   rQ   r   r   r  rO   r   )ri   rj   rN   r1   ydatas        ro   test_unordered_tsz$TestDataFramePlots.test_unordered_ts  s    H___%%b!$$d4A&6&6T1a8H8HIH
 
 

 WWYY!&&((ay6!9$$$$%%''
#E28OOO+D+DEEEEEr   c                 2   t          dg di          }t          j        j        D ]5}|                    |            t          |j        |                       6dD ]9}|                    dd|            t          |j        |          dd           :d S )Nr'   r   r  )r   r   )r   r   PlotAccessor_common_kindsrQ   getattr)ri   rj   r  s      ro   test_kind_both_waysz&TestDataFramePlots.test_kind_both_ways  s    YYY'(()7 	% 	%DGGG"GBGT""$$$$) 	- 	-DGGC4G((("GBGT""3,,,,	- 	-r   c                     t          t          d                    }t          j        j        D ]M}d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   Nd S )Nabcdno numeric data to plotr)   r  )	r   r[   r   r  r  rT   rU   ru  rQ   ri   rj   r  rk   s       ro   test_all_invalid_plot_dataz-TestDataFramePlots.test_all_invalid_plot_data  s    tF||$$)7 	# 	#D+Cy444 # #T"""# # # # # # # # # # # # # # #	# 	#s   A00A4	7A4	c                 8   t          t          j                            d                              dd          t
                    }d|t          j                            |j        d                   dk    <   t          j	        j
        D ]M}d}t          j        t          |	          5  |                    |
           d d d            n# 1 swxY w Y   Nt          t          j                            d                              dd          t
                    }d|t          j                            |j        d                   dk    <   t          j        t          d	          5  |                    d
           d d d            d S # 1 swxY w Y   d S )Nr	  r,   r    rw   r   r   r  r  r)   r  r   )r   rX   rY   r  r   r   rZ   r-  r   r  r  rT   rU   ru  rQ   r  s       ro    test_partially_invalid_plot_dataz3TestDataFramePlots.test_partially_invalid_plot_data  s   ry,,R0066r1==VLLL0329>>"(1+&&,-)7 	# 	#D+Cy444 # #T"""# # # # # # # # # # # # # # # ry,,R0055b!<<FKKK0329>>"(1+&&,-]9,EFFF 	! 	!GGG   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   )CC	C	+FFFc                     t          t          j                            dd                    }d}t	          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr,   r    z*invalid_plot_kind is not a valid plot kindr)   invalid_plot_kindr  )r   rX   rY   r   rT   rU   r   rQ   r   s      ro   test_invalid_kindz$TestDataFramePlots.test_invalid_kind  s    ryr1--..:]:S111 	. 	.GG,G---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A//A36A3zx,y,lblr~   r   r}   r   r   r   c                     t          ddgddgddgd          }t          j        t          d	          5  |                    |||
           d d d            d S # 1 swxY w Y   d S )Nr   r    r%   r   r/   r@   ra  x must be a label or positionr)   r'   r(   r   r   rT   rU   r   rQ   )ri   r'   r(   lblrj   s        ro   test_invalid_xy_argsz'TestDataFramePlots.test_invalid_xy_args  s     aV1a&1v>>??]:-LMMM 	) 	)GGa1CG(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AA"Ac                     t          ddgddgddgd          }d}t          j        t          |	          5  |                    d
ddgd           d d d            d S # 1 swxY w Y   d S )Nr   r    r%   r   r/   r@   ra  z.label should be list-like and same length as yr)   r}   r~   r   	bad_labelr  r  r   s      ro   test_bad_labelz!TestDataFramePlots.test_bad_label  s    aV1a&1v>>??>]:S111 	< 	<GGcc3Z{G;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AA#&A#zx,yr   c                     t          g dg dgt          d                    }t          j        t          d          5  |                    ||           d d d            d S # 1 swxY w Y   d S )N)r   r%   r/   )r    r   r@   AABr   r  r)   r&   )r   r[   rT   rU   r   rQ   r  s       ro   test_invalid_xy_args_dup_colsz0TestDataFramePlots.test_invalid_xy_args_dup_cols  s     			999-tE{{CCC]:-LMMM 	 	GGa1G	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s    A%%A),A)zx,y,lbl,colorsr  bluer   r   r    bokehcythongreenyellowc                 :   t          ddgddgddgd          }t          |j        d||	           |                    ||||
          }t          |j                  t          |          k    sJ |                     |                                |           d S )Nr   r    r%   r   r/   r@   ra  r}   r  )r'   r(   r   ru  
linecolors)r   r   rQ   rg   r   r  r   )ri   r'   r(   r  r  rj   rN   s          ro   test_y_listlikez"TestDataFramePlots.test_y_listlike  s     aV1a&1v>>??"'SAS9999WWqASW7728}}A&&&&2<<>>f=====r   zx,y,colnamesc                 n    t          ddgddgd          }||_        t          |j        ||           d S )Nr   r    r%   r   r   r&   )r   rJ   r   rQ   )ri   r'   r(   colnamesrj   s        ro   test_xy_args_integerz'TestDataFramePlots.test_xy_args_integer  sE     aV1a&1122
"'Q!,,,,,,r   c                 ,   t          t          j                            d          t          j                            d          t          j        d          t          j                            d          z   d          }|j                            ddd          }t          |j                  dk    sJ |j                            ddd	
          }t          |d         j	        j
                  dk    sJ |                     |dd           d S )Nr`  r  ra  r}   r~   r,   )r'   r(   gridsizer   T)r'   r(   r   r   r    rL   r   )r   rX   rY   r  r   rQ   r   rg   r  figurerh   rR   )ri   rj   rN   rh   s       ro   test_hexbin_basicz$TestDataFramePlots.test_hexbin_basic  s    Y&&B&//Y&&B&//Yr]]RY%6%6B%6%?%?? 
 
 W^^cS2^662>""a'''' w~~sT~:: 47>&''1,,,,ta?????r   c                    t          t          j                            d          t          j                            d          t          j        d          t          j                            d          z   d          }|j                            ddd          }t          |j                  dk    sJ |j                            dddt          j	        	          }t          |j                  dk    sJ d S )
Nr`  r  ra  r}   r~   r   )r'   r(   r   r   )r'   r(   r   reduce_C_function)
r   rX   rY   r  r   rQ   r   rg   r  stdr   s      ro   test_hexbin_with_cz%TestDataFramePlots.test_hexbin_with_c.  s    Y&&B&//Y&&B&//Yr]]RY%6%6B%6%?%?? 
 
 W^^cSC^002>""a''''W^^cSC26^JJ2>""a''''''r   zkwargs, expectedBuGnr  r  r  YlGnc                 n   t          t          j                            d          t          j                            d          t          j        d          t          j                            d          z   d          } |j        j        dddd|}|j        d         j        j	        |k    sJ d S )	Nr`  r  ra  r}   r~   r&   r   r   )
r   rX   rY   r  r   rQ   r   r  r  r   )ri   kwargsrh  rj   rN   s        ro   test_hexbin_cmapz#TestDataFramePlots.test_hexbin_cmap=  s     Y&&B&//Y&&B&//Yr]]RY%6%6B%6%?%?? 
 
 RW^3cS33F33~a %*h666666r   c                 B   t          t          j                            dd          g dg d          }d}t	          j        t          |          5  |j                                         d d d            n# 1 swxY w Y   t          |j        j        d	          }| 
                    |j        |j                   t          |j        j        d
	          }| 
                    |j        |j                   t          |j        j        dd          }t          |          t          |j                  k    sJ |D ]"}| 
                    |j        |j                   #t          ||j                  D ]\  }}|                                |k    sJ  g d}g d}t          |j        j        dd||          }t          |          t          |j                  k    sJ |D ]9}| 
                    |j        |           |                     |j        |           :d S )Nr/   r%   )XYZr   r   r   r!  erI   z/pie requires either y column or 'subplots=True'r)   r  r   r    Tr   r|   )r=  gr   r   m)r   r   r  r  r  )r   rX   rY   rZ   rT   rU   r   rQ   r   r   r   textsr.   rg   rJ   rb   r  r  r;  )ri   rj   rk   rN   rh   ylabelr  
color_argss           ro   test_pie_dfzTestDataFramePlots.test_pie_dfP  sv   INN1a  #OO+++
 
 

 @]:S111 	 	GKKMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 rw{c222"(333rw{a000"(333 GK
 
 

 4yyC
OO++++ 	8 	8B##BHbh7777dBJ// 	- 	-JB==??f,,,,,***...
 GK
 
 
 4yyC
OO++++ 	B 	BB##BHf555rzjAAAA	B 	Bs   A88A<?A<c                    dd l }t          t          j                            dd                    }t          d          D ]}t          j        |j        ||f<   | j        	                    d          \  }}i }|j
        dk    rddi}t          j        d           5   |j        j        dd|dd| d d d            n# 1 swxY w Y   g d}t          |          D ]\  }}t!          |          }	d	|	|<   d
 |j        D             }
|
|	k    sJ d |                                                                D             }|d |         ||dz   d          z   }||k    sJ d S )Nr   r   )ncolsz3.3	normalizeT)r   rN   r  )0123re  c                 6    g | ]}|                                 S r   r  rK  r'   s     ro   rM  z6TestDataFramePlots.test_pie_df_nan.<locals>.<listcomp>  s     555qajjll555r   c                 6    g | ]}|                                 S r   r  r  s     ro   rM  z6TestDataFramePlots.test_pie_df_nan.<locals>.<listcomp>  s     OOOaQZZ\\OOOr   r   r   )r  r   rX   rY   rZ   rc   r   ilocrf   r   __version__rO   assert_produces_warningrQ   r   r_  r[   r  rf  rg  )ri   r  rj   r  rm   rh   r  base_expectedrN   rh  rn   result_labelsexpected_labelss                ro   test_pie_df_nanz"TestDataFramePlots.test_pie_df_nanz  s       ry~~a++,,q 	# 	#AFBGAqDMMH%%A%..	T ?e##!4(F'-- 	G 	GBGKF$tFFvFFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G -,,t__ 	4 	4EArM**HHQK55BH555FX%%%%
 PO2==??3L3L3N3NOOOM+BQB/-A2HHO O33333	4 	4s   C  CCc                 @   t          j        d          t          j        ddd          d}t          |          }t          j        d          dz  t          j        d          dz  d}t          |          }t	          |j        |d          }|                     |dd	
           t	          |j        |dd          }|                     |dd	
           t	          |j        |d          }|                     |dd	
           t	          |dz   j        ||dd          }|                     |d	d	
           t	          |d         j        t          j        d          dz            }|                     |dd
           t	          |j        t          j        d          dz            }|                     |dd	
           dD ]}|                                }t          j        d          dz  ||<   t	          |j        |          }|                     |dd	
           t	          |j        dd|          }|                     |dd
           t          j	        t                    5  |                    t           j                            d                     d d d            n# 1 swxY w Y   t          dgdz  dgdz  d          }t          j	        t                    5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr  r   r   r&   皙?皙?T)yerrr   r    xerrr  )r  r   r   )r  r   r   rE   )r  r  r  r   r(   r  )r    r  )r  u   誤差r'   )r(   r'   r  r  zzz)rX   r   r   onesr   rQ   _check_has_errorbarscopyrO   external_error_raisedr   rY   r   ru  )ri   r!  rj   d_errdf_errrN   r  s_dfs           ro   test_errorbar_plotz%TestDataFramePlots.test_errorbar_plot  s   )B--biAr&:&:;;q\\gbkkC'bgbkkC.?@@5!! rwV$???!!"11!555rwV$TJJJ!!"11!555rwVDAAA!!"11!555!VMV%T
 
 
 	!!"11!555 r#w|"'"++2CDDD!!"11!555rwRWW-=-=-CDDD!!"11!555 ' 	: 	:D7799Ds*DJ"494888B%%bqq%999"49sFFFB%%bqq%9999%j11 	. 	.GG,,G---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. %2UGbLAABB%i00 	! 	!GGG   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s$   14J11J58J5/LLL)rW   rE   rB  c                 Z   t          j        d          t          j        ddd          d}t          |          }t          j        d          dz  t          j        d          dz  d}t          |          }t	          |j        |d         |          }|                     |dd	
           t	          |j        ||          }|                     |dd	
           t	          |j        |||          }|                     |d	d	
           t	          |j        |d         |d         |          }|                     |d	d	
           t	          |j        dd|          }|                     |d	d	
           t	          |j        d||d|          }|                     |dd
           d S )Nr  r   r   r&   r  r  r'   r  r  r    r  )r  r  r  )r  r  r  T)r   r  r  r   r  r   )rX   r   r   r  r   rQ   r  )ri   r  r!  rj   r  r  rN   rh   s           ro   "test_errorbar_plot_different_kindsz5TestDataFramePlots.test_errorbar_plot_different_kinds  s    )B--biAr&:&:;;q\\gbkkC'bgbkkC.?@@5!!rwVC[tDDD!!"11!555rwU>>>!!"11!555rwV&tLLL!!"11!555rwVC[vc{QUVVV!!"11!555rwSsFFF!!"11!555 G
 
 
 	!!$QQ!77777r   zIterator is consumed)r   rU   c           
      n   t          j                    5  t          j        d          t          j        ddd          d}t	          |          }t          |j        t          j        dt          |                              }| 
                    |dd           d d d            d S # 1 swxY w Y   d S )	Nr  r   r   r&   r+  r  r    r  )warningscatch_warningsrX   r   r   r   rQ   	itertoolsrL  rg   r  )ri   r!  rj   rN   s       ro   test_errorbar_plot_iteratorz.TestDataFramePlots.test_errorbar_plot_iterator  s    $&& 	: 	:imm")B2*>*>??A1B #271A#s2ww1O1OPPPB%%bqq%999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   B	B**B.1B.c                    t          t          j        t          j                            dd                              }t          t          j        t          j                            dd                              }t          |j        |          }|                     |dd           t          |j        dd          }|                     |dd           d S )Nr,   r    r  r   r  r   )r(   r  )r   rX   absrY   r   r   rQ   r  )ri   rj   r  rN   s       ro   'test_errorbar_with_integer_column_namesz:TestDataFramePlots.test_errorbar_with_integer_column_names  s    rvbioob!44556626")//"a"8"899::rwV444!!"11!555rw!!444!!"11!55555r   c                    t          t          j        t          j                            dd                              }t          t          j        t          j                            dd                    ddg          }ddg}|D ]1}t          |j        ||          }|                     |dd	           2t          d
dd          }|	                    |d           |	                    |d           t          |j        |d          }|                     |dd	           t          j
        d          t          j
        ddd          d}t          |          }t          j        d          dz  t          j        d          dz  d}t          |          }||fD ]0}	t          |j        |	          }|                     |dd	           1d S )Nr,   r%   r    r   r   rW   rE   r  r  1/1/2000M)r{  rz  T)inplacer  r   r&   r  r  )r'   r   r  r   )r   rX   r  rY   r   r   rQ   r  r   r   r   r  )
ri   rj   r  kindsr  rN   ixr!  r  errs
             ro   "test_errorbar_with_partial_columnsz5TestDataFramePlots.test_errorbar_with_partial_columns  s   rvbioob!44556626")//"a"8"899Aq6JJJ 	: 	:D"27dCCCB%%bqq%9999
BS999
R&&&T***rwV&AAA!!"11!555)B--biAr&:&:;;q\\gbkkC'bgbkkC.?@@5!!6? 	: 	:C"27555B%%bqq%9999	: 	:r   c                 j   t          j        d          t          j        ddd          d}t          j        d          dz  t          j        d          dz  d}t          ddd	
          }t	          ||          }t	          ||          }t          |j        ||          }|                     |dd           t          |j        ||          }|                     |dd           t          |j        d|d         |          }|                     |dd           t          |j        dd|          }|                     |dd           t          |j        ||          }|                     |dd           t          |j        d||d          }|                     |dd           d S )Nr  r   r   r&   r  r  r  z1/1/2001r  )rz  r-   r  r    r  r(   r'   )r(   r  r  r   T)r   r  r  r   )rX   r   r  r   r   r   rQ   r  )	ri   r  r!  r  r  r   tdf_errrN   rh   s	            ro   test_errorbar_timeseriesz+TestDataFramePlots.test_errorbar_timeseries  s   )B--biAr&:&:;;gbkkC'bgbkkC.?@@ 
JS999$$$E,,,sxgDAAA!!"11!555sxe$???!!"11!555sx3WS\MMM!!"11!555sx3StDDD!!"11!555sxgDAAA!!"11!555 H
 
 
 	!!$QQ!77777r   c                    t           j                            d           t           j                            ddd          }t	          t          j        d                              dd                    j        }|                    ||dz            }|j	        d         
                                d         j        d d df         }|dd d df         t          j        ddg          z  }t          j        ||           t          j        d	          }t#          j        t&          |
          5  |                    |j                   d d d            n# 1 swxY w Y   t          j                     d S )Nr   r%   r    r/   r  )r  r  r   r   zCAsymmetrical error bars should be provided with the shape (3, 2, 5)r)   r  )rX   rY   r3  rZ   r   r   reshapeTrQ   r  	get_pathsverticesr   rO   r'  rs  rt  rT   rU   r   r   )ri   r  rj   rN   yerr_0_0expected_0_0rk   s          ro   test_errorbar_asymmetricalz-TestDataFramePlots.test_errorbar_asymmetrical4  s}   
	qinnQ1%% ry}},,Q22335WW#C!GW,,>!$..003<QQQTB1aaa7|bhAw&7&77
x666iQ
 
 ]:S111 	  	 GGG	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	




s   1EE Ec                    t          t          j                            dd          t	          t
          j        d d                             }t          |j        d           t          |j        |           t          j
        d           5  |                                }t          |j                  dk    sJ t          j        ||j                   t          |j                  dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr,   r%   r-   T)tabler   r   )r   rX   rY   rZ   r[   r\   r]   r   rQ   rO   r  rg   tablesr   r   r  r   s      ro   
test_tablezTestDataFramePlots.test_tableI  s/   ry~~b!,,D9Mcrc9R4S4STTT"'...."',,,, '-- 	' 	'Bry>>Q&&&&N2rt$$$ry>>Q&&&&&		' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A#D  DDc                     t          t          j        t          j                            dd                    t          d          ddg          }t          t          j        t          j                            dd                    dz  t          d          ddg          }t          |j        j        dd           	                    dd           t          |j        j        dd|	           	                    d
d           t          |j        j        dd|           	                    dd
           t          |j        j        dd||           	                    d
d
           d fd	}t          t          j        t          j                            dd                    g d          }|j                            ddddd           	                    d
d
            |j
        dd            |j
        dd           |j                            dddd           	                    dd
            |j
        dd           d S )Nr/   r    r'   r(   r   r&   r   r  )r'   r(   r  r   )r'   r(   r  )r'   r(   r  r  has_xerrc           	      N   g }fdj         D             d         }|D ]<}t          |          r|                    |           '|                    |           =fd|D             }                    |t          j        |gt          |          z                       d S )Nc                 @    g | ]}t          |d           |j        S )F)r  r   )rK  r   has_errs     ro   rM  z[TestDataFramePlots.test_errorbar_scatter.<locals>._check_errorbar_color.<locals>.<listcomp>i  s,    QQQga%6P6PQAGQQQr   r   c                 &    g | ]}|j         v |S r   )r  )rK  r'   rN   s     ro   rM  z[TestDataFramePlots.test_errorbar_scatter.<locals>._check_errorbar_color.<locals>.<listcomp>o  s%    AAAqQ".-@-@-@-@-@r   r  )
containersr   extendappendr  rX   r   rg   )	r	  rh  r  r   errsel	err_linesrN   ri   s	     `    ro   _check_errorbar_colorzGTestDataFramePlots.test_errorbar_scatter.<locals>._check_errorbar_colorg  s    EQQQQR]QQQRSTD % %## %LL$$$$LL$$$$AAAAEAAAIbhzC	NN/J&K&K      r   r,   r  r   r   r   r!  r  r  )r'   r(   r  r  r   )r  has_yerrr  )r'   r(   r  ru  )r  )r   rX   r  rY   r   rc   r   rQ   r   r  r	  )ri   rj   r  r  rN   s   `   @ro   test_errorbar_scatterz(TestDataFramePlots.test_errorbar_scatterU  s   F29??1a(())qC:
 
 
 F29??1a(())A-U1XXSz
 
 
 rw#===!!"11!555rw#6JJJ!!"11!555rw#6JJJ!!"11!555rw#6PVWWW!!"11!555	 	 	 	 	 	 	 F29??2q))**4M4M4M
 
 
 W__sc#_GG!!"11!555bmUJGGGGbmUJGGGGW__sc7_CC!!"11!555bmWjIIIIIIr   c                     t          g ddd          }t          j        t          t          fd          5  |                    dddd	
           d d d            d S # 1 swxY w Y   d S )Nr   r   r  z'unknown' is not ar)   r   r   unknownr   )r'   r(   r  r  )r   rT   rU   r   KeyErrorrQ   r   s     ro   test_scatter_unknown_colormapz0TestDataFramePlots.test_scatter_unknown_colormap  s    YYYQ//00]J19MNNN 	F 	FGGcS99GEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   AA"%A"c                 d    dd l m} |                    d           t                      \  }}t	          g dg dg dg dd          } fd}|D ]}|                    ddd|d	
           |                    |                                            ||           t          j                     t                      \  }}t          j	        t                    5  |                    d	|d	          }d d d            n# 1 swxY w Y    ||           t          j                     t                      \  }}|D ]}|                    ddd|           |                    |                                           |D ]}t          |j                  dk    sJ                      |                                d	                                |                                d	                                |                    d	          d	           t          j                     d S )Nr   r  r   r    r%   r   r/   r@   r   r   r   r!  c                 4   | D ]E}t          |j                  dk    sJ                     |                                d           F| d         | d         fD ]V}                    |                                d                               |                    d          d           W| d         | d         fD ]V}                    |                                d                               |                    d          d           Wd S )	Nr   Tr8   r   r    Fr:   r%   )rg   r   r^   r  r`   rh   rN   ri   s     ro   _checkz5TestDataFramePlots.test_sharex_and_ax.<locals>._check  sA    H H28}}))))##B$6$6$8$8$#GGGGAwQ( S S##B$6$6$8$8%#HHH##B$6$6T$6$B$BE#RRRRAwQ( R R##B$6$6$8$8$#GGG##B$6$6T$6$B$BD#QQQQR Rr   r   r   r6   T)r'   r(   r6   rN   sharex)r   rN   r  r'   r(   r6   rN   r   r8   r:   )rZ  r[  r   _generate_4_axes_via_gridspecr   rQ   tight_layoutr\  rO   r  UserWarningrg   r   r^   r  r`   ri   rf   gsrh   rj   r  rN   s   `      ro   test_sharex_and_axz%TestDataFramePlots.test_sharex_and_ax  s    	('''''		%022D''''''''''''	 
 
		R 		R 		R 		R 		R  	E 	EBGGcSBtGDDDD
		"""t



022D'44 	@ 	@77DT$7??D	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@t



022D 	8 	8BGGcSBG7777
		""" 	N 	NBrx==A%%%% 2 2 4 4dCCC 2 2 4 4dCCC 2 2 2 > >MMMM





s   DD	Dc                 b    dd l m} t                      \  }}t          g dg dg dg dd          } fd}|D ]}|                    ddd|d	           |                    |                                            ||           t          j                     t                      \  }}t          j	        t                    5  |                    d|d
          }d d d            n# 1 swxY w Y   |                    |                                            ||           t          j                     t                      \  }}|D ]}|                    ddd|           |                    |                                           |D ]}t          |j                  dk    sJ                      |                                d                                |                                d                                |                    d          d           d S )Nr   r  r  c                    | D ]p}t          |j                  dk    sJ                     |                                d                               |                    d          d           q| d         | d         fD ]+}                    |                                d           ,| d         | d         fD ]+}                    |                                d           ,d S )	Nr   Tr8   r:   r   r    r%   F)rg   r   r^   r`   r  r  s     ro   r  z5TestDataFramePlots.test_sharey_and_ax.<locals>._check  s    R R28}}))))##B$6$6$8$8$#GGG##B$6$6T$6$B$BD#QQQQAwQ( H H##B$6$6$8$8$#GGGGAwQ( I I##B$6$6$8$8%#HHHHI Ir   r   r   r6   T)r'   r(   r6   rN   r5  )r   rN   r5  r  r   r8   r:   )rZ  r[  r  r   rQ   r  r\  rO   r   r  r   rg   r   r^   r  r`   r!  s   `      ro   test_sharey_and_axz%TestDataFramePlots.test_sharey_and_ax  s    	('''''022D''''''''''''	 
 
	I 	I 	I 	I 	I  	E 	EBGGcSBtGDDDD
		"""t



022D'44 	@ 	@77DT$7??D	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 			"""t



022D 	8 	8BGGcSBG7777
		""" 	N 	NBrx==A%%%% 2 2 4 4dCCC 2 2 4 4dCCC 2 2 2 > >MMMM		N 	Ns   C--C14C1c           	         i }t           j        j        D ]}i }|dv rt          t          j                            d          t          j                            d          t	          j        d          t          j                            d          z   d          }ddd}n?|dk    r&t          j	                    
                                }nt          j	                    }t          j         |j        dd	|i|          ||<   t          j                     t          j                     d
}|                                D ]<}t%          j        t(          |          5  |j         ddd           n# 1 swxY w Y   =dS )z3Check that every plot type gets properly collected.)r   r   r   r`  r  ra  r}   r~   r&   r   r  z)weakly-referenced object no longer existsr)   Nr   )r   r  
_all_kindsr   rX   rY   r  r   rO   rP   r  weakrefproxyrQ   r   gccollectr  rT   rU   ReferenceErrorr   )ri   resultsr  argsrj   rk   result_values          ro   test_memory_leakz#TestDataFramePlots.test_memory_leak  s    )4 	F 	FDD333Y..B.77Y..B.77Yr]]RY->->B->-G-GG   !s++)++//11)++ $M'"'*D*Dt*Dt*D*DEEGDMM 	




9#NN,, 	# 	#L~S999 # #""# # # # # # # # # # # # # # #	# 	#s   !E55E9	<E9	c                   
 ddl m
 dd lm t	          t
          j                            d          t          dd                    }t          t
          j                            dd          |j
        t          d          	          }
fd
}
fd} |             |            fD ]\  }}|                    |          }t          |j                  dk    sJ |                    |          }t          |j                  dk    sJ ||fD ]}|                     |                                d           |                     |                                d           |                     |                    d          d           t%          j                      |             |            fD ]\  }}|                    d||g          }t          |j                  dk    sJ t          |j                  dk    sJ |D ]}|                     |                                d           |                     |                                d           |                     |                    d          d           t%          j                      |            \  }}t%          j        t*                    5  |                    d||gdd          }d d d            n# 1 swxY w Y   t          |d         j                  dk    sJ t          |d         j                  dk    sJ ||fD ]+}|                     |                                d           ,|                     |d                                         d           |                     |d                             d          d           |                     |d                                         d           |                     |d                             d          d           t%          j                      |            \  }}t%          j        t*                    5  |                    d||gdd          }d d d            n# 1 swxY w Y   t          |d         j                  dk    sJ t          |d         j                  dk    sJ |                     |d                                         d           |                     |d                                         d           ||fD ]V}|                     |                                d           |                     |                    d          d           Wt%          j                     
fd}	 |	            }t          t
          j                            dd          |j
        t          d          	          }|                    d|          }|D ]}t          |j                  dk    sJ |                     |                                d           |                     |                                d           |                     |                    d          d           t%          j                      |	            }t%          j        t*                    5  |                    d|dd          }d d d            n# 1 swxY w Y   |D ]}t          |j                  dk    sJ |d         |d         fD ]+}|                     |                                d           ,|d         |d         fD ]+}|                     |                                d           ,|d         |d         fD ]V}|                     |                                d           |                     |                    d          d           W|d         |d         fD ]V}|                     |                                d           |                     |                    d          d           Wt%          j                     d S )Nr   )gridspecr,   r  )r{  r-   r    ABr   c                                           dd          }                                 }|                    | d dd d f                   }|                    | dd d f                   }||fS )Nr%   r   r    GridSpecr  r^  r"  rm   r  r  r3  rf   s       ro   _get_vertical_gridzHTestDataFramePlots.test_df_gridspec_patterns.<locals>._get_vertical_grid  sl    ""1a((B**,,C//"RaRU),,C//"QT(++C8Or   c                                           dd          }                                 }|                    | d d d df                   }|                    | d d df                   }||fS )Nr   r%   r    r6  r8  s       ro   _get_horizontal_gridzJTestDataFramePlots.test_df_gridspec_patterns.<locals>._get_horizontal_grid%  sl    ""1a((B**,,C//"QQQU),,C//"QQQT(++C8Or   rN   r   Tr8   r:   rM   )r   rN   r  r5  Fc                  X                        dd          }                                 }|                    | d dd df                   }|                    | d ddf                   }|                    | dd df                   }|                    | d                   }||||fS )Nr%   r    r!   r6  )r"  rm   r  r  ax3ax4r3  rf   s         ro   _get_boxed_gridzETestDataFramePlots.test_df_gridspec_patterns.<locals>._get_boxed_gridb  s    ""1a((B**,,C//"RaR!V*--C//"RaRU),,C//"QU),,C//"T(++CS#%%r   r   ABCDr%   )r  r3  rZ  r[  r	   rX   rY   r   r   r   r.   r[   rQ   rg   r   r^   r  r`   rO   r   r  r   )ri   tsrj   r9  r;  r  r  rN   rh   r@  r3  rf   s             @@ro   test_df_gridspec_patternsz,TestDataFramePlots.test_df_gridspec_patterns  s	   ''''''''''''BIOOB''z*b/Q/Q/QRRRryr1--RXtDzzRRR	 	 	 	 	 		 	 	 	 	 	 ,+--/C/C/E/EF 		 		HC''S'//Csy>>Q&&&&''S'//Csy>>Q&&&&Cj R R##B$6$6$8$8$#GGG##B$6$6$8$8$#GGG##B$6$6T$6$B$BD#QQQQHJJJJ ,+--/C/C/E/EF 	 	HC77Dc3Z788Dsy>>Q&&&&sy>>Q&&&& R R##B$6$6$8$8$#GGG##B$6$6$8$8$#GGG##B$6$6T$6$B$BD#QQQQHJJJJ &%''S'44 	S 	S77Dc3ZT7RRD	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S47=!!Q&&&&47=!!Q&&&&* 	D 	DB 2 2 4 4dCCCCDG3355uEEEDG33$3??OOODG3355tDDDDG33$3??NNN



 ('))S'44 	S 	S77Dc3ZT7RRD	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S47=!!Q&&&&47=!!Q&&&&DG3355tDDDDG3355uEEE* 	N 	NB 2 2 4 4dCCC 2 2 2 > >MMMM



	& 	& 	& 	& 	& 	&   ryr1--RXtF||TTTwww.. 	N 	NBrx==A%%%% 2 2 4 4dCCC 2 2 4 4dCCC 2 2 2 > >MMMM



   '44 	M 	M77DT$t7LLD	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	& 	&Brx==A%%%%%7DG$ 	D 	DB 2 2 4 4dCCCC7DG$ 	E 	EB 2 2 4 4eDDDD7DG$ 	O 	OB 2 2 4 4eDDD 2 2 2 > >NNNN7DG$ 	N 	NB 2 2 4 4dCCC 2 2 2 > >MMMM





s6   K55K9<K9)RRR#\		\\c                     |                      t          g dg dd          t          j        j        ddd           d S )Nr   r  r  r   r   r&   )kws)_check_grid_settingsr   r   r  _dataframe_kinds)ri   s    ro   test_df_grid_settingsz(TestDataFramePlots.test_df_grid_settings  sX    !!IIIIII6677!2$$ 	" 	
 	
 	
 	
 	
r   c                    | j                                         \  }}|                    g d           t          t          j                            d                                        |           t          t          j        	                    d          t          j        	                    d          d          }| j         
                                }|                    d          }|                    d|dd	dd
           | j                                         \  }}ddlm}  ||          }|                    ddd          }t          t          j                            d                                        |           t          t          j                            d                                        |           | j                                         \  }}ddlm}  ||ddd          }t          t          j                            d                                        |           t          t          j                            d                                        |           d S )N)r  r  r  r  r,   r<  rH   r  )r   r   r   r   r   r   r   hsv)r  rN   r'   r(   r   r  r   )make_axes_locatabler  z5%g?)r  pad)
inset_axesz30%r   r%   )r@  r  r  )rf   r   add_axesr	   rX   rY   rZ   rQ   r   r   r  mpl_toolkits.axes_grid1rK  append_axes%mpl_toolkits.axes_grid1.inset_locatorrM  )	ri   rm   rN   rj   rK  dividercaxrM  iaxs	            ro   test_plain_axesz"TestDataFramePlots.test_plain_axes  s$    (##%%R)))***ry~~b!!""''2'... RY__Q//biooa6H6HIIJJhoo\\,''
Y2sGGG (##%%R??????%%b))!!'$!??ry~~b!!""''2'...ry~~b!!""''3'///(##%%RDDDDDDj5!<<<ry~~b!!""''2'...ry~~b!!""''3'/////r   method)rW   rB  rE   c                 X   t          t          j                            dd          t	          d                                        d                               d           }d	}d
dg}||dd} t          |j        |          di |}|                     |j	        |           d S )Nr  r    r4  r   c                 4    | j                                         S r  )r~   rQ  rj   s    ro   <lambda>zBTestDataFramePlots.test_secondary_axis_font_size.<locals>.<lambda>  s     r   r   c                     | j         dz  S )Ng?r[  rY  s    ro   rZ  zBTestDataFramePlots.test_secondary_axis_font_size.<locals>.<lambda>  s     r   )r   r`  r   r   T)r)  r  
mark_right)rh   r  r   )
r   rX   rY   r   r[   assignr  rQ   rS   r+  )ri   rV  rj   r  r  r  rN   s          ro   test_secondary_axis_font_sizez0TestDataFramePlots.test_secondary_axis_font_size  s     bioob!,,d4jjAAAV..V//V++V,, 	 3Z!#NN%WRWf%%////R[XFFFFFr   c                    t          g dg dg dd          }|j                            d          }|                    dd           d	 |                                D             }t          t          ||                                                    }|d
         dk    sJ |d         dk    sJ |d         dk    sJ d S )N)r%   r    r%   )r`  r	     )MondayTuesday	Wednesday)salesvisitsdayrg  r   r   r%   c                 6    g | ]}|                                 S r   r  rK  ts     ro   rM  zATestDataFramePlots.test_x_string_values_ticks.<locals>.<listcomp>       BBBqzz||BBBr   rb  r   rc  r   rd  r   )r   rQ   r   set_xlimr`   r  rb   
get_xticks)ri   rj   rN   xticklabelslabels_positions        ro   test_x_string_values_ticksz-TestDataFramePlots.test_x_string_values_ticks  s     "&,,999 
 
 W\\E\""
BBBR-?-?-A-ABBBs;@@AAx(C////y)S0000{+s222222r   c                    t          j        ddgddgg          }t          t          j                            dd          ddg|          }|                                }|                    d	d           d
 |                                D             }t          t          ||                                                    }|d         dk    sJ |d         dk    sJ |d         dk    sJ |d         dk    sJ d S )Nr|  i  r   r    r   r}   r~   rI   r   c                 6    g | ]}|                                 S r   r  ri  s     ro   rM  zETestDataFramePlots.test_x_multiindex_values_ticks.<locals>.<listcomp>  rk  r   z	(2012, 1)r   z	(2012, 2)r   z	(2013, 1)r   z	(2013, 2)r   )r   from_productr   rX   rY   r   rQ   rl  r`   r  rb   rm  )ri   r.   rj   rN   rn  ro  s         ro   test_x_multiindex_values_ticksz1TestDataFramePlots.test_x_multiindex_values_ticks  s    '$1v(>??ryq!,,sCjNNNWWYY
BBBR-?-?-A-ABBBs;@@AA{+s2222{+s2222{+s2222{+s222222r   c                     t          ddgddg          }|                    |          }|                                }|d         dk     sJ |d         dk    sJ d S )Nr    r   r   r-   r  r   )r   rQ   r   )ri   r  rj   rN   xlimss        ro   test_xlim_plot_linez&TestDataFramePlots.test_xlim_plot_line  sd     1vaV,,,WW$WQx!||||Qx!||||||r   c                    | j                                         \  }}g d}t          g dg dg dg dd|          }|g d         j                            |d	
           |dg                             |d           |                                }|d         dk     sJ |d         dk    sJ d |                                D             }||k    sJ d S )N)k1k2k3k4)i  r     r   )i  ix  r   i  )r}  r}  i@  i  )r   r%   r   r%   )s1s2s3r)  r-   )r~  r  r  F)rN   r  r)  T)rN   r)  r   r   r%   c                 6    g | ]}|                                 S r   r  ri  s     ro   rM  zWTestDataFramePlots.test_xlim_plot_line_correctly_in_mixed_plot_type.<locals>.<listcomp>  rk  r   )rf   r   r   rQ   rE   r   r`   )ri   rm   rN   indexesrj   rv  rn  s          ro   0test_xlim_plot_line_correctly_in_mixed_plot_typezCTestDataFramePlots.test_xlim_plot_line_correctly_in_mixed_plot_type  s    (##%%R***...---...+||	  
 
 
 	#''2u'===
M?  BD 999Qx!||||Qx!|||| CBR-?-?-A-ABBBg%%%%%%r   c                    t          dgt                    }|j        sJ |                                }t	          |                                          dk    sJ |                                d         }t	          |                                          dk    sJ t	          |                                          dk    sJ d S )Nfoo)rJ   rx   r   r   )r   intemptyrQ   rg   r   r   r  )ri   rj   rN   rW   s       ro   test_plot_no_rowsz$TestDataFramePlots.test_plot_no_rows  s    wc222xWWYY2<<>>""a''''||~~a 4>>##$$))))4>>##$$))))))r   c                     t          g d          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r  r)   )r   rT   rU   ru  rQ   r   s     ro   test_plot_no_numeric_dataz,TestDataFramePlots.test_plot_no_numeric_data  s    '']9,EFFF 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAA)rW   rE   rB  r   r  r  r   r   c                 $   t          j        d          t          j        d          dz   t          j        d          dz   t          j        d          t          j        d          d}t          |          }|                    ddg|          }t	          |          dk    sJ dd	gd
dgdgf}t          ||          D ]O\  }}|dk    r|                     ||           |dk    r't	          |j                  t	          |          k    sJ Pd S )Nr,   r   r  )r   r  )r   r!  r   r  r%   r   r  r   r!  r   r   r  rW   )rX   r   r   rQ   rg   rb   r  r   )ri   r  r!  rj   rh   r  rN   r  s           ro   test_group_subplotz%TestDataFramePlots.test_group_subplot  s    22"2"22
 
 q\\wwZ 8twDD4yyA~~~~:SzC59dO44 	4 	4JBu}}))"V)<<<v~~28}}F3333		4 	4r   c                     t          t          d                    }d}t          j        t          |          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr   z!An iterable subplots for a Seriesr)   r   rK   )r	   rc   rT   rU   NotImplementedErrorrQ   )ri   serrk   s      ro   (test_group_subplot_series_notimplementedz;TestDataFramePlots.test_group_subplot_series_notimplemented+  s    U1XX1].c::: 	( 	(HHvhH'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   AA#&A#c                    t          t          j        d          t          j        ddg                    }d}t          j        t          |          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr    rW  )r   r    r   z6An iterable subplots for a DataFrame with a MultiIndexr)   rK   )	r   rX   eyer   rd   rT   rU   r  rQ   r   s      ro   ,test_group_subplot_multiindex_notimplementedz?TestDataFramePlots.test_group_subplot_multiindex_notimplemented1  s    rvayy**@&&AQ*R*RSSSF].c::: 	' 	'GGfXG&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A::A>A>c                     t          t          j        d          ddg          }d}t          j        t
          |          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr    r   r   z4An iterable subplots for a DataFrame with non-uniquer)   r  rK   )r   rX   r  rT   rU   r  rQ   r   s      ro   0test_group_subplot_nonunique_cols_notimplementedzCTestDataFramePlots.test_group_subplot_nonunique_cols_notimplemented7  s    rvayy3*555D].c::: 	' 	'GGfXG&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A((A,/A,zsubplots, expected_msg)){   z(subplots should be a bool or an iterable)r   !each entry should be a list/tuple))r   r  )r  r  c                 
   t          j        d          t          j        d          d}t          |          }t          j        t
          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nr,   r  r)   rK   rX   r   r   rT   rU   r   rQ   )ri   r   expected_msgr!  rj   s        ro   test_group_subplot_bad_inputz/TestDataFramePlots.test_group_subplot_bad_input=  s     )B--bimm44q\\]:\::: 	' 	'GGXG&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's   A88A<?A<c                    t          j        d          t          j        d          d}t          |          }t          j        t
          d          5  |                    dg           d d d            d S # 1 swxY w Y   d S )Nr,   r  z Column label\(s\) \['bad_name'\]r)   )r   bad_namerK   r  ri   r!  rj   s      ro   &test_group_subplot_invalid_column_namez9TestDataFramePlots.test_group_subplot_invalid_column_nameP  s    )B--bimm44q\\]:-PQQQ 	2 	2GG/0G111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A99A= A=c                 4   t          j        d          t          j        d          t          j        d          d}t          |          }t          j        t
          d          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nr,   r   zshould be in only one subplotr)   r  )r   r   rK   r  r  s      ro   $test_group_subplot_duplicated_columnz7TestDataFramePlots.test_group_subplot_duplicated_columnW  s    )B--bimm")B--HHq\\]:-LMMM 	7 	7GGj*5G666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7r  )r  r   r   c                    t          j        d          t          j        d          d}t          |          }t          j        t
          d          5  |                    dg|           d d d            d S # 1 swxY w Y   d S )Nr,   r  z1When subplots is an iterable, kind must be one ofr)   r  r  )ri   r  r!  rj   s       ro   test_group_subplot_invalid_kindz2TestDataFramePlots.test_group_subplot_invalid_kind^  s    )B--bimm44q\\]Q
 
 
 	6 	6 GGj\G555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   A::A>A>z index_name, old_label, new_label)Nre  new)oldr  r  )Nre  re  )Nre  r   re  )rW   r   rE   c                    t          ddgddggddg          }||j        _        |                    |          }|                                |k    sJ |                                dk    sJ |                    |||	          }|                                t          |          k    sJ |                                t          |          k    sJ d S )
Nr   r    r/   Type AType Br   r  re  )r  r  xlabel)r   r.   r   rQ   
get_xlabelr  str)ri   r  
index_name	old_label	new_labelrj   rN   s          ro   (test_xlabel_ylabel_dataframe_single_plotz;TestDataFramePlots.test_xlabel_ylabel_dataframe_single_plotg  s     AA'(H1EFFF" WW$W}})++++}}"$$$$ WW$yWCC}}#i..0000}}#i..000000r   zxlabel, ylabel))NN)X LabelN)NY Label)r  r  r   r   c                     d}d}t          ddgddgg||g          }|                    |||||          }|                                ||n|k    sJ |                                ||n|k    sJ d S )Nr  r  r   r    r/   r   )r  r'   r(   r  r  )r   rQ   r  r  )ri   r  r  r  xcolycolrj   rN   s           ro   'test_xlabel_ylabel_dataframe_plane_plotz:TestDataFramePlots.test_xlabel_ylabel_dataframe_plane_plot  s     AA'$>>> WW$$$vfWMM}}6>44vFFFF}}6>44vFFFFFFr   r)  )FTc                 N   t          dg                              |dddg          }|j        j        D ]o}|j                                        rT|                                dk    sJ |                                dk    sJ |                                d         dk    sJ pd S )Nr   r  )r   r2   r   )r)  r  r3   r0   )	r   rQ   r  rh   r   get_visibler  r0  
get_yticks)ri   r)  ax_dfrN   s       ro   test_secondary_yz#TestDataFramePlots.test_secondary_y  s    1####Cht $ 
 
 ,# 	0 	0Bx##%% 0}}#----{{}}0000}}q)R////		0 	0r   )NNNN)o__name__
__module____qualname__rT   markxfailslowrp   r   r   r   r   r   r   parametrizer   r   r   r   r   r   r   r  r  r'  r-  r3  r8  r>  rD  r^  ri  rq  rv  r~  r  r  r  r  r  r  r  r  r  r  r  r	  tdskip_if_no_scipyr  r  r)  rX   r  r6  rF  rO  rR  rc  rh  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r#  r&  r1  rC  rH  rU  r_  rp  rt  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ro   r   r   '   sY       [455[d! d!  65d!L= = =* [8 8 8$( ( (
; ; ;
' ' 'S S S0 [!M3D#E / / /  [],F,F,FGG+ + HG+#, #, #,J  ) ) )$9 9 92
& 
& 
&2 2 2 [Vff%566-H -H 76-H^%L %L %LN6 6 60 [.   
 [Yu66  76 "	5 	5 	5. . .(#/ #/ #/J% % %8" " "2 2 2:@ @ @*6 6 65 5 5
5 
5 
5 [Yu66[	.	.	.0U0U0UV U U	  76
U4 [V%I%I%IJJ5 5 KJ5/D /D /DbY Y Y. . .
; 
; 
; [K K K@6 6 686 6 6<4 4 4, 1 1 1* / / /
%E %E %EN [C'"'////wrwX7N7N7N1NO Q Q Q& U U U U.A A AF0 0 09 9 9$? ? ? [	
 	
 	
 7 7 7
F 
F 
F - - -# # #! ! !. . . [3Zc"US#Jc
+	
 ) ) )< < < [UZ3%$>??  @? [3%#(3*sCj5&/:A(+gx-@A	
 > > > [^q!c3Z.@1a!Q.-QRR- - SR-@ @ @*( ( ( [L+&4fv&	
 	7 	7 	7(B (B (BT4 4 4< [,! ,! ,!\ [[V%<%<%<==8 8 >= 8> [4ZHH: : IH:6 6 6 [: : :, [V%<%<%<==8 8 >=8B  *
' 
' 
'*J *J *JXF F F4 4 4l3N 3N 3Nj  #  #  #Dq q qf
 
 
0 0 0< [X'>'>'>??G G @?G3 3 3&3 3 3 [Vff%566  76& & &4* * *  
 [P 4 4  4(( ( (' ' '' ' ' [ 	
 	
 	
 ' ' '2 2 27 7 7 [V%ABB6 6 CB6 [*!21v	
	 	 [V%<%<%<==1 1 >=	 	1" [	
 	
 	
  [Vi%:;;	G 	G <; 	G []M::0 0 ;:0 0 0r   r   c                  <   dd l } dd l}dd lm} | j                            dd          }|                    |d                   }|                    |d                   }|                    |d                   }|                    |d                   }|||||gfS )Nr   r    r  )r   r   rW  rL   )r  matplotlib.gridspecrZ  r[  r3  r7  subplot)r  r  rf   r"  ax_tlax_llax_trax_lrs           ro   r  r    s    ######			q!	$	$BKK4!!EKK4!!EKK4!!EKK4!!EueU+++r   )&__doc__r   r   r+  r  rs  r\   r  r)  numpyrX   rT   pandas.util._test_decoratorsutil_test_decoratorsr  pandas.core.dtypes.apir   pandasr   r   r   r   r	   r
   r   r   pandas._testing_testingrO   pandas.tests.plotting.commonr   r   pandas.io.formats.printingr   skip_if_no_mplr   r  r   r   ro   <module>r     s   % %        
			     				         ) ) ) ) ) ) ) ) ) / / / / / /                                  
 4 3 3 3 3 3 y!0 y!0 y!0 y!0 y!0 y!0 y!0 y!0xC, , , , ,r   