
    .iԋ                       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	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mZmZ ddlmZ ddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z.  ej^                  d	      Z0 ej^                  d
      Z1ejd                  jg                  d      ejd                  jg                  d      gZ4 G d d      Z5d Z6y)zTest cases for DataFrame.plot    )datedatetimeN)is_list_like)		DataFrameIndex
MultiIndexPeriodIndexSeriesbdate_range
date_rangeoption_contextplotting)_check_ax_scales_check_axes_shape_check_box_return_type_check_colors_check_data_check_grid_settings_check_has_errorbars_check_legend_labels_check_plot_works_check_text_labels_check_ticks_props_check_visible
get_y_axis)Version)pprint_thing
matplotlibzmatplotlib.pyplotzAignore:divide by zero encountered in scalar divide:RuntimeWarningzBignore:invalid value encountered in scalar multiply:RuntimeWarningc                    )   e Zd Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  d        Z	ej                  j                  d      ej                  j
                  d               Zej                  j
                  d        Zej                  j
                  ej                  j                  d	d
g didg didddddddg      d               Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  ej                  j                  dddg      d               Zej                  j
                  d        Zej                  j                  d ed      ddgddgddgd dgd dgdd gdd gdd gdd gdd!gdd!gdd"gdd"gg      d#        Zej                  j
                  ej                  j                  d$g d%      d&               Zej                  j
                  ej                  j                  d'd(i gd)i gd*i gd+d,d,igd-d.d,d/gd0d.d,d/gg      d1               Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zej                  j                  d8d9d:g      d;        Zej                  j                  d<g d=      d>        Z d? Z!d@ Z"dA Z#dB Z$dC Z%dD Z&ej                  j                  dEe'jP                  e'jR                  g      dF        Z*ej                  j                  dG e+d,g dHig dIJ       e+d,dKdLe'jX                  dMdNdOdPgidLdKdMdQe'jX                  dMdQgJ      g      dR        Z-dS Z.dT Z/dU Z0ej                  j                  dVd(dWg      ej                  j                  dXdYdZg      d[               Z1ej                  j                  dVd(dWg      d\        Z2d] Z3ej                  j                  dVd(dWg      d^        Z4ej                  j                  d_ e5d`       e6dad!d`b      g      dc        Z7ej                  j                  d_ e5d`       e6dad!d`b      g      dd        Z8ej                  j                  d_ e5d`       e6dad!d`b      g      ej                  j                  d	i dedfig      dg               Z9ej                  j                  d	i dhdig      di        Z:dj Z;ej                  j                  dfdkl      ej                  j                  deddfg      dm               Z<dn Z=ej                  j                  deddfg      do        Z>dp Z?ej                  j                  dqdrdsg      ej                  j                  deddfg      dt               Z@ej                  j                  dqdrdsg      du        ZAdv ZBdw ZCdx ZDdy ZEdz ZFd{ ZGej                  j                  d_eHeIj                  g      d|        ZKej                  j                  d}d/d~g      d        ZLd ZMd ZNd ZOd ZPej                  j                  d}ddg      d        ZQej                  j                  ddf ej                  d eSj                  d            g      ej                  j                  d}ddg      ej                  j                  dg dg dg      d                      ZUej                  j                  dddfg      ej                  j                  dg dg df      d               ZVej                  j                  d}g d      d        ZWej                  j                  dddg      d        ZXd ZYd ZZd Z[d Z\d Z]ej                  j
                  ej                  j                  d	i ddfiddddedig      d               Z^ej                  j
                  d        Z_ej                  j
                  d        Z`ej                  j
                  d        Zad Zbd Zcd Zdej                  j                  d      ej                  j                   efegj                         efd      k\  d      d               Ziej                  j                  d      ej                  j                   efegj                         efd      k\  d      d               Zjej                  j                  d      ej                  j                   efegj                         efd      k\  d      d               Zkd Zlej                  j                  dg d      d        Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwej                  j                  dddg      d        Zx	 	 	 	 d^dZyej                  j                  d e'j                   e'j                  g dĢ       e'j                  g dŢ             e'j                   e'j                  g dĢ       e'j                  g dƢ             e'j                   e'j                  g dĢ       e'j                  g dǢ            dȜ e'j                   e'j                  e'jX                  dYddd`dg       e'j                  g d̢             e'j                   e'j                  dYe'jX                  ddd`dg       e'j                  g d͢             e'j                   e'j                  dYdde'jX                  d`dg       e'j                  g d΢            dȜg      dτ        Z|dЄ Z}ej                  j                  ddddddddg dբddgg      dք        Z~dׄ Zej                  j                  dg d٢      dڄ        Zdۄ Zej                  j                  dVej                  j                        d܄        Zej                  j                  dVd-d0g      d݄        Zej                  j                  dVej                  j                        dބ        Zej                  j                  dVg  eej                  j                        dW      d߄        Zd Zej                  j                  ddd gddfdgdd gddgfg      d        Zd Zej                  j                  dddgdfg      d        Zej                  j                  dddgdgdgfddd gddgddgfddYdgddgddgfg      d        Zej                  j                  dddYddgfdYdddYgfg      d        Zd Zd Zej                  j                  dde'j"                  g      d        Zej                  j                  di dfddidfddidfg      d        Zd  Zej                  j                  d,ddg      d        Zd Zd Zd Zej                  j
                  ej                  j                  d	ddidddddig      d	               Zej                  j
                  d
        Zej                  j
                  d        Zej                  j
                  ej                  j                  dddg      d               Zej                  j
                  d        Zej                  j
                  d        Zej                  j
                  ej                  j                  dVg d      ej                  j                  d e e'j@                  d      dz  d.       e+ e'j@                  d      dz   e'j@                  d      dz  d/      g      d                      Zej                  j
                  ej                  j                  dVg d      ej                  j                  d e+ e'j@                  d      dz   e'j@                  d      dz  d/       e+ e'j@                  d      dz   e'j@                  d      dz  d/      f e e'j@                  d      dz  d.       e e'j@                  d      dz  d.      fdg      d                      Zej                  j
                  ej                  j                  dVg d      d               Zej                  j                  de      d        Zd Zej                  j
                  ej                  j                  dVd(d)g      d                Zej                  j
                  d!        Zej                  j
                  ej                  j                  d"d# e+g      d$               Zej                  j                  dVg d      d%        Zd& Zd' Zd( Zd) Zd* Zd+ Zd, Zd- Zd. Zej                  j                  dVej                  jh                        d/        Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zej                  j                  d7g d8      d9        Zd: Zd; Zej                  j                  dVd(dWg      d<        Zd= Zd> Zd? Zej                  j                  dVd@      dA        ZĐdB ZŐdC ZƐdD Zej                  j                  dEg dF      dG        ZȐdH ZɐdI Zej                  j                  dVdJ      dK        Zej                  j                  dLdMdNdOdPddQdYdgfg      ej                  j                  dVg dR      dS               Zej                  j                  dTg dU      ej                  j                  dVd-d0g      dV               Zej                  j                  dhdW      dX        Zej                  j
                  dY        Zej                  j                  dZg d[      d\        ZАd] Zy(_  TestDataFramePlotsc           	          t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |j                  d
       y )N   
      ABCDdtype
2000-01-01r$   BperiodsfreqcolumnsindexF)grid)r   nprandomdefault_rngstandard_normalr   listobjectr   r   plotselfdfs     d/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/plotting/frame/test_frame.py	test_plotzTestDataFramePlots.test_plot@   sS    II!!!$44W=$v,f5\2C@

 	"''.    c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |j                  d
d
      }t        |dd       y )Nr"   r#   r&   r'   r)   r$   r*   r+   r.   Tdefault_axessubplotsr%   r%      axes_numlayoutr   r2   r3   r4   r5   r   r6   r7   r   r   r8   r   r:   r;   axess      r<   test_plot_subplotsz%TestDataFramePlots.test_plot_subplotsI   sc    II!!!$44W=$v,f5\2C@
 !tdK$6:r>   c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |j                  d
d
d      }t        |dd       y )Nr"   r#   r&   r'   r)   r$   r*   r+   r.   T)r"   )rA   rB   rG   r%   r"   r"   rE   rH   rI   s      r<   "test_plot_subplots_negative_layoutz5TestDataFramePlots.test_plot_subplots_negative_layoutT   sm    II!!!$44W=$v,f5\2C@

 !GG	
 	$6:r>   c           	      (   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |j                  d
d
d      }t        |d       t        |dd       y )Nr"   r#   r&   r'   r)   r$   r*   r+   r.   TF)rA   rB   	use_indexr   xrotr%   rC   rE   )r   r2   r3   r4   r5   r   r6   r7   r   r   r8   r   r   rI   s      r<   test_plot_subplots_use_indexz/TestDataFramePlots.test_plot_subplots_use_indexc   sw    II!!!$44W=$v,f5\2C@

 !GG	
 	4a($6:r>   zApi changed in 3.6.0)reasonc                     t        ddgddgd      }d}t        j                  t        |      5  |j                  j                  d	       d d d        y # 1 sw Y   y xY w)
NrD   r"      r%   xyz''Line2D' object has no property 'blarg'matchT)blarg)r   pytestraisesAttributeErrorr8   liner:   r;   msgs      r<   test_plot_invalid_argz(TestDataFramePlots.test_plot_invalid_args   sU     aV1a&127]]>5 	%GGLLtL$	% 	% 	%s   AAc                     t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }t        |j                  d      }t        |d       y )	Nr"   r$   rW   r$   r0   TrQ   r   rR   )
r   r2   r3   r4   r6   stringascii_lettersr   r8   r   r:   r;   axs      r<   test_plot_tick_propsz'TestDataFramePlots.test_plot_tick_props{   sZ    II!!!$++G4v++CR01

 rww$72A&r>   kwargsyticks)rD      r$   xticks)id   )ylimxlimTblah)rA   rB   titlec                     t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }t        |j                  fi | y )Nr"   rf   r$   rg   	r   r2   r3   r4   r6   ri   rj   r   r8   r:   rn   r;   s      r<   test_plot_other_argsz'TestDataFramePlots.test_plot_other_args   sS     II!!!$++G4v++CR01
 	"'',V,r>   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }|j                  dd      }t        |dd	
       |d d D ]u  }t        |j                         t        |j                         d       t        |j                  d      d       t        |j                  j                         gd       w |d   fD ]a  }t        |j                         t        |j                                t        |j                  j                         g       t        |d       c y )Nr"   rf   r$   rg   Tru   )rB   rv   rW   rW   rD   rE   Fvisibleminorr   rR   )r   r2   r3   r4   r6   ri   rj   r8   r   r   xaxisget_xticklabels	get_labelr   )r:   r;   rJ   rl   s       r<   test_plot_visible_axz'TestDataFramePlots.test_plot_visible_ax   s   II!!!$++G4v++CR01
 wwFw3$6:r( 	BB288$2--/?2--D-95IBHH..015A		B
 7) 	+B288$2--/0BHH..012r*		+r>   c                     t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }t        |j                  d       y )Nr"   rf   r$   rg   ru   rv   rx   r9   s     r<   test_plot_titlez"TestDataFramePlots.test_plot_title   sN    II!!!$++G4v++CR01
 	"''0r>   c                 4   t        t        j                  d d t        d      d      }t	        t
        j                  j                  d      j                  d      t        j                  |            }t        |j                  d      }t        |d	       y )
Nr$   Tstrictr"   rf   rg   rh   r   rR   )zipri   rj   ranger   r2   r3   r4   r   from_tuplesr   r8   r   )r:   tuplesr;   rl   s       r<   test_plot_multiindexz'TestDataFramePlots.test_plot_multiindex   sr    V))#2.b	$GII!!!$++G4((0
 rww$72A&r>   c                    t        j                  g dddg      }t        j                  ddgddg      }t        t        j                  j                  d	      j                  d
dd      ||      }t        |j                  d       y )N))   αr   )r   rD   )   βr"   )r   rW   )   γr%   )r   rp   )   δ   )r      i0i1)names)baru   Δ)r   u   Εc0c1r"   r   r$   )   r"   r.   u   Σr   )	r   r   r   r2   r3   r4   integersr   r8   )r:   r0   r/   r;   s       r<   test_plot_multiindex_unicodez/TestDataFramePlots.test_plot_multiindex_unicode   s     &&	 ,
 (( 124,
 II!!!$--aV<

 	"''2r>   rG   N)rM   rD   c                     t        dt        j                  j                  d      j                  d      i      }t	        |j
                  j                  d|      }t        |dd       y )	NrY   r"   r$   T)rB   rG   rD   rD   rD   rE   )r   r2   r3   r4   r   r8   r   r   )r:   rG   r;   rJ   s       r<   test_plot_single_column_barz.TestDataFramePlots.test_plot_single_column_bar   sO    
 RYY2215<<R@AB tFK$6:r>   c                 <   t        dt        j                  j                  d      j                  d      i      }t        j
                  j                         \  }}|j                  j                  d|      }t        |      dk(  sJ |j                  }||d   u sJ y )NrY   r"   r$   TrB   rl   rD   r   )r   r2   r3   r4   mplpyplotrB   r8   r   lenrJ   )r:   r;   _rl   rJ   results         r<   test_plot_passed_axz&TestDataFramePlots.test_plot_passed_ax   s     RYY2215<<R@AB

##%2ww{{DR{04yA~~a   r>   z
cols, x, yABCDEAr*   CDEc                 V   g d}t        g dg dt        j                  ddt        j                  ddgt              t        j                  |d	      j                  d
      t        j                  |dd      j                  d
      d      }t        ||   j                  ||       y )N)20082009N20112012rD   r"   rW   r%   rp   r   rp   rW   r"   r'   z%Yformati8T)r   utcr   r*   r   r   r   rX   )
r   r2   arraynanr7   pdto_datetimeviewr   r8   )r:   colsrY   rZ   datesr;   s         r<   test_nullable_int_plotz)TestDataFramePlots.test_nullable_int_plot   s     7$$XXq!RVVQ2&A^^E$7<<TB^^E$DAFFtL
 	"T(--12r>   r8   )ra   r   histpiec                     t        j                  g dd      }t        |      }t        t	        |j
                  |             y )NrD   r"   rW   r%   UInt32r'   )r   r   r
   r   getattrr8   )r:   r8   arrss       r<   test_integer_array_plot_seriesz1TestDataFramePlots.test_integer_array_plot_series	  s0     hh|843K'!&&$/0r>   zplot, kwargsra   r   r   r   rZ   scatterrY   rX   hexbinc                     t        j                  g dd      }t        ||d      }t        t	        |j
                  |      fi | y )Nr   r   r'   rX   )r   r   r   r   r   r8   )r:   r8   rn   r   r;   s        r<   test_integer_array_plot_dfz-TestDataFramePlots.test_integer_array_plot_df  s;     hh|84Ss+,'"''40;F;r>   c                     t        g dg dd      }|j                         }t        |j                               dk(  sJ y )NrY   rZ   zrD   r"   rW   r   r*   rD   )r   r8   r   	get_linesrk   s      r<   test_nonnumeric_excludez*TestDataFramePlots.test_nonnumeric_exclude$  s5    _9=>WWY2<<>"a'''r>   c                     t        t        j                  j                  d      j	                  d      g d      }|j                  dd      }t        |j                  j                         d       y )Nr"   rf   abcr/   r   r   rX   )	r   r2   r3   r4   r5   r8   r   r   r   rk   s      r<   test_implicit_labelz&TestDataFramePlots.test_implicit_label)  sV    II!!!$44W=
 WWscW"288--/5r>   c                     t        t        j                  j                  d      j	                  d      ddg      }d|j
                  _        |j                  dd       |j
                  j                  dk(  sJ y )	Nr"   rN   r   r   r   NAMELABEL)rZ   label)r   r2   r3   r4   r5   r0   namer8   r9   s     r<   test_donot_overwrite_index_namez2TestDataFramePlots.test_donot_overwrite_index_name0  sb    II!!!$44V<sCj
 
#W%xx}}&&&r>   c           	      v   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        |j                  d
d      |j                  d      d   j                                t        |j                  d
      |j                  d      j                                t        |j                  d
      |j                  j                                t        |j                  dd      |j                  d      j                  j                                t        |j                  d      |j                  d      j                                t        |j                  d      |j                  j                                y )Nr"   rp   r%   r&   r'   r)   rp   r*   r+   r.   r   rD   rX   r   rY   rZ   )r   r2   r3   r4   r5   r   r6   r7   r   r   r8   	set_indexr*   r9   s     r<   test_plot_xyzTestDataFramePlots.test_plot_xy9  s*   II!!!$44V<$v,f5\13?

 	BGGa1G%r||C'8'='B'B'DEBGGaGL",,s"3"8"8":;BGGaGL"$$))+.BGGcSG)2<<+<+>+>+C+C+EFBGGcGNBLL$5$:$:$<=BGGcGNBDDIIK0r>   c           	      h   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        j                  d
t        |j                        d
z         |_        t        |j                  d
d      |j                  d
      d   j                                t        |j                  d
      |j                  d
      j                                t        |j                  d
      |d
   j                                y )Nr"   r   r&   r'   r)   rp   r*   r+   r.   rD   rX   r   r   )r   r2   r3   r4   r5   r   r6   r7   r   aranger   r/   r   r8   r   r9   s     r<   test_plot_xy_int_colsz(TestDataFramePlots.test_plot_xy_int_colsG  s    II!!!$44V<$v,f5\13?
 YYq#bjj/A"56
BGGa1G%r||Aq'9'>'>'@ABGGaGL",,q/"6"6"89BGGaGL"Q%**,/r>   c           	      4   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                  d
ddd      }t        |j                  d       t        |d
dd       y )Nr"   r   r&   r'   r)   rp   r*   r+   r.   rD   Test)   r   )rY   rZ   rv   figsizer   )g      0@       @)rF   rG   r   )r   r2   r3   r4   r5   r   r6   r7   r   r8   r   rv   r   rk   s      r<   test_plot_xy_figsize_and_titlez1TestDataFramePlots.test_plot_xy_figsize_and_titleS  sw    II!!!$44V<$v,f5\13?
 WWqAVWW=288V,"qMr>   zinput_log, expected_log)Tlog)symsymlogc                    t        dt        j                  d      it        j                  d            }|j                  |      }t	        ||       |j                         |k(  sJ |j                  |      }t	        ||       |j                         |k(  sJ |j                  |      }t	        |||	       |j                         |k(  sJ |j                         |k(  sJ y )
Nr   rr   rg   logyyaxis)logxr   loglog)r   r   )r   r2   r   r8   r   
get_yscale
get_xscale)r:   	input_logexpected_logr;   rl   s        r<   test_logscalesz!TestDataFramePlots.test_logscalesa  s     RYYs^,BIIcNCWW)W$<0}},...WW)W$<0}},...WWIW&<|D}},...}},...r>   input_param)r   r   r   c                    t        dt        j                  d      it        j                  d            }d| d}t        j                  t
        |      5   |j                  di |di d d d        d| d	}t        j                  t        |      5   |j                  j                  dd
di|di d d d        y # 1 sw Y   TxY w# 1 sw Y   y xY w)Nr   rr   rg   z	keyword 'z*' should be bool, None, or 'sym', not 'sm'r[   smzPiePlot ignores the 'z	' keywordrB   T )r   r2   r   r^   r_   
ValueErrorr8   tmassert_produces_warningUserWarningr   )r:   r  r;   rc   s       r<   test_invalid_logscalez(TestDataFramePlots.test_invalid_logscalet  s     RYYs^,BIIcNC+&PQ]]:S1 	+BGG*{D)*	+ &k])<''3? 	>BGGKK==+t)<=	> 	>		+ 	+	> 	>s   B?!C?CCc           	      d   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                  d
      }|j                         }t        |d   j                         t              rJ t        |d       y )Nr"   r#   r&   r'   r)   r$   r*   r+   r.   T)x_compatr      rR   )r   r2   r3   r4   r5   r   r6   r7   r   r8   r   
isinstance	get_xdatar	   r   r:   r;   rl   liness       r<   test_xcompatzTestDataFramePlots.test_xcompat  s    II!!!$44W=$v,f5\2C@

 WWdW#eAh002K@@@2B'r>   c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }d
t        j                  d<   |j                         }|j                         }t        |d   j                         t              rJ t!        |d       y )Nr"   r#   r&   r'   r)   r$   r*   r+   r.   Tzxaxis.compatr   r  rR   )r   r2   r3   r4   r5   r   r6   r7   r   r   plot_paramsr8   r   r  r  r	   r   r  s       r<   test_xcompat_plot_paramsz+TestDataFramePlots.test_xcompat_plot_params  s    II!!!$44W=$v,f5\2C@

 04^,WWYeAh002K@@@2B'r>   c           	      *   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }d
t        j                  d<   |j                         }|j                         }t        |d   j                         t              rJ d}t!        j"                  t$        |      5  t        t        |d   j                               t              sJ 	 d d d        y # 1 sw Y   y xY w)Nr"   r#   r&   r'   r)   r$   r*   r+   r.   Fr  r   zPeriodDtype\[B\] is deprecatedr[   )r   r2   r3   r4   r5   r   r6   r7   r   r   r  r8   r   r  r  r	   r	  r
  FutureWarningr:   r;   rl   r  rc   s        r<   !test_xcompat_plot_params_x_compatz4TestDataFramePlots.test_xcompat_plot_params_x_compat  s    II!!!$44W=$v,f5\2C@

 ,1Z(WWYeAh002K@@@/''SA 	Nk%(*<*<*>?MMM	N 	N 	Ns   -D		Dc           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        j                  j                  d
d      5  |j                         }|j                         }t        |d   j                         t               rJ t#        |d       d d d        y # 1 sw Y   y xY w)Nr"   r#   r&   r'   r)   r$   r*   r+   r.   r  Tr   r  rR   )r   r2   r3   r4   r5   r   r6   r7   r   r   r  user8   r   r  r  r	   r   r  s       r<   (test_xcompat_plot_params_context_managerz;TestDataFramePlots.test_xcompat_plot_params_context_manager  s    II!!!$44W=$v,f5\2C@
 !!%%j$7 	,BLLNE!%("4"4"6DDDr+		, 	, 	,s   ?ACC"c           	         t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }|j                         }|j                         }t        |d
   j                         t              rJ d}t        j                  t         |      5  t        t        |d
   j                               t              sJ 	 d d d        t#        |d
       y # 1 sw Y   xY w)Nr"   r#   r&   r'   r)   r$   r*   r+   r.   r   zPeriodDtype\[B\] is deprecated r[   rR   )r   r2   r3   r4   r5   r   r6   r7   r   r8   r   r  r  r	   r	  r
  r  r   r  s        r<   test_xcompat_plot_periodz+TestDataFramePlots.test_xcompat_plot_period  s    II!!!$44W=$v,f5\2C@

 WWYeAh002K@@@0''SA 	Nk%(*<*<*>?MMM	N2A&	N 	Ns   ?-DDc                    t        t        j                  j                  d      j                  d      t	        t        ddd      t        ddd            ddg      }|j                          t        j                  j                  d	
       y )Nr"   )   r"     rD      r   r   r0   r/   r   r   )
r   r2   r3   r4   r   r   r8   r   r   axhliner9   s     r<   test_period_compatz%TestDataFramePlots.test_period_compat  sn     II!!!$++G4htQ2HT1b4IJ#J
 		

Qr>   index_dtypec           
         t        dt        j                  d      it        t        j                  ddd      |      t        j                        }|j                         }|j                         d   }|j                         }t        |d d df   |d d df   t        j                  d	      }t        j                  ||j                  d
       y )NrZ   rr   c   rM   r'   )r0   r(   r   rD   )r(   r   F)check_index_type)r   r2   r   r   int64r8   r   
get_xydatar
   r	  assert_series_equalrZ   )r:   r(  r;   rl   r  rss         r<   test_unsorted_indexz&TestDataFramePlots.test_unsorted_index  s    "))C.!		"b"-[A((

 WWYq!Bq!tHbAhbhhSA
r244%@r>   r;                 ?       @      @)r3  r2  r5  r4  rg   r2  r3  r5  g      @g      @g      @r4  c                 "   |j                         }|j                         \  }}|j                         }|t        j                  |d   j                         d         k  sJ |t        j                  |d   j                         d         k\  sJ y )Nr   )r8   get_xlimr   r2   nanminget_datananmaxr:   r;   rl   xminxmaxr  s         r<   test_unsorted_index_limsz+TestDataFramePlots.test_unsorted_index_lims  s{     WWY[[]
dryyq!2!2!4Q!78888ryyq!2!2!4Q!78888r>   c                 L   t        g dg dd      }|j                  dd      }|j                         \  }}|j                         }|t	        j
                  |d   j                         d         k  sJ |t	        j                  |d   j                         d         k\  sJ y )Nr1  )g     V@g     V@g     @W@g      W@)rZ   r   r   rZ   rX   r   )r   r8   r7  r   r2   r8  r9  r:  r;  s         r<   test_unsorted_index_lims_x_yz/TestDataFramePlots.test_unsorted_index_lims_x_y  s    18PQRWWscW"[[]
dryyq!2!2!4Q!78888ryyq!2!2!4Q!78888r>   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d       g d       }d}t        j                  t        |      5  |j                  j                  d	       d d d        t        j                  t        |      5  |j                  j                  d
       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)Nr"   r   r%   r   rY   rZ   r   fourr%  z+Log-y scales are not supported in area plotr[   Tr   r   )r   r2   r3   r4   r6   ri   rj   r^   r_   r  r8   arearb   s      r<   test_negative_logz$TestDataFramePlots.test_negative_log  s    II!!!$++F3v++BQ/0+
 

 <]]:S1 	$GGLLdL#	$]]:S1 	&GGLLL%	& 	&	$ 	$	& 	&s   5C5C'C$'C0c                    t        j                  t        |d   j                         d               }t	        ||d      D ]D  \  }}||j                         d   z  }|j                         d   }t        j                  ||       F y )Nr   rD   Tr   )r2   zerosr   r9  r   r	  assert_numpy_array_equal)r:   normal_linesstacked_linesbasenlslsys          r<   _compare_stacked_y_coodz*TestDataFramePlots._compare_stacked_y_cood   sx    xxLO446q9:;,dC 	2FBBKKM!$$Dq!B''b1	2r>   kindrE  multrD   rM   c                 ,   |t        t        j                  j                  d      j                  d      g d      z  }t	        |j
                  |d      }t	        |j
                  |d      }| j                  |j                  |j                         y )Nr"   rB  wrY   rZ   r   r   FrQ  stackedTr   r2   r3   r4   r   r8   rP  r  )r:   rQ  rR  r;   ax1ax2s         r<   test_line_area_stackedz)TestDataFramePlots.test_line_area_stacked  ss     III!!!$++F3=Q
 
  dEBdDA$$SYY		:r>   c                    t        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      t        j                  j                  d      j                  d       t        j                  j                  d      j                  d       d      }t	        |j
                  |d      }t	        |j
                  |d      }| j                  |j                  d d |j                  d d        | j                  |j                  dd  |j                  dd         y )Nr"   r   rT  FrV  TrX  )r:   rQ  sep_dfrY  rZ  s        r<   test_line_area_stacked_sep_dfz0TestDataFramePlots.test_line_area_stacked_sep_df  s     YY**1-44Q7YY**1-44Q7ii++A.55a88ii++A.55a88	
  $F$E$$SYYr]CIIbqMB$$SYYqr]CIIabMBr>   c                 f   t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }t        |j                  d       d}t        j                  t        |	      5  |j                  d
       d d d        y # 1 sw Y   y xY w)Nr"   rB  r   rT  r%  FrW  zWhen stacked is True, each column must be either all positive or all negative. Column 'w' contains both positive and negative valuesr[   T)r   r2   r3   r4   r5   r6   ri   rj   r   r8   r^   r_   r  )r:   mixed_dfrc   s      r<   test_line_area_stacked_mixedz/TestDataFramePlots.test_line_area_stacked_mixed"  s    II!!!$44V<v++BQ/0(

 	(--7 	
 ]]:S1 	(MM$M'	( 	( 	(s   B''B0c                     t        t        j                  j                  d      j                  d      g d      }|j	                  |j
                  dz         }t        |j                  |dd       y )Nr"   rB  rT  r   rD   T)rQ  r   rW  )r   r2   r3   r4   r   r0   r   r8   )r:   rQ  r;   df2s       r<   #test_line_area_stacked_positive_idxz6TestDataFramePlots.test_line_area_stacked_positive_idx2  sV    II!!!$++F3=Q

 ll288a<(#((D$Gr>   idxr%   z	2023-01-1r-   r,   c                 R   ddt         j                  dg}dt         j                  ddg}t        ||d|      }t        |j                        }|j
                  d   j                         }|j
                  d   j                         }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             y )NrD   r"   rW   r   r   rg   r   r   r'   )rW   r"   rD   )FFTF)FTFF)r2   r   r   r   r8   r  	get_ydatar   float64r	  rI  deletedatamask)	r:   rf  values1values2r;   rl   masked1masked2exps	            r<   test_line_area_nan_dfz(TestDataFramePlots.test_line_area_nan_df<  s    a#bffa#W733?rww'((1+'')((1+'') hhy

3
##BIIgllA$>Dhhy

3
##BIIgllA$>D
##GLL"((;V2WX
##GLL"((;V2WXr>   c                    ddt         j                  dg}dt         j                  ddg}t        ||d|      }t        j                  g dt         j                        }t        j                  g dt         j                        }t        |j                  d	
      }t        j                  |j                  d   j                         |       t        j                  |j                  d   j                         ||z          y )NrD   r"   rW   ri  rg   rD   r"   r   rW   r'   rW   r   r"   rD   Tr`  r   )r2   r   r   r   rk  r   r8   r	  rI  r  rj  )r:   rf  ro  rp  r;   	expected1	expected2rl   s           r<   test_line_area_nan_df_stackedz0TestDataFramePlots.test_line_area_nan_df_stackedQ  s     a#bffa#W733?HH\<	HH\<	rww5
##BHHQK$9$9$;YG
##BHHQK$9$9$;Y=RSr>   rW  Fc                    ddt         j                  dg}dt         j                  ddg}t        ||d|      }t        j                  g dt         j                        }t        j                  g dt         j                        }t        |j                  j                  fi |}t        j                  |j                  d	   j                         |       |r2t        j                  |j                  d   j                         |       n4t        j                  |j                  d   j                         ||z          t        |j                  j                  d
      }t        j                  |j                  d	   j                         |       t        j                  |j                  d   j                         |       y )NrD   r"   rW   ri  rg   rv  r'   rw  r   Fr`  )r2   r   r   r   rk  r   r8   rE  r	  rI  r  rj  )	r:   rf  rn   ro  rp  r;   rx  ry  rl   s	            r<   "test_line_area_nan_df_stacked_areaz5TestDataFramePlots.test_line_area_nan_df_stacked_area`  s9   
 a#bffa#W733?HH\<	HH\<	rww||6v6
##BHHQK$9$9$;YG''(=(=(?K''(=(=(?YAVWrww||U;
##BHHQK$9$9$;YG
##BHHQK$9$9$;YGr>   secondary_yc                 \   t        t        j                  j                  d      j                  d      g d      } |j                  di |}|j                         \  }}|j                         }||d   j                         d   d   k  sJ ||d   j                         d   d   k\  sJ y )Nr"   r   rW   r   r   r   rM   r  )r   r2   r3   r4   r8   r7  r   r9  )r:   rn   r;   rl   r<  r=  r  s          r<   test_line_limz TestDataFramePlots.test_line_limw  s    ryy,,Q/66v>XRWWv[[]
duQx((*1-a0000uQx((*1-b1111r>   c                    t        t        j                  j                  d      j                  d      g d      }|j	                  dd      }t        |dd	       |D ]}  }t        |d
      sJ t        |d      rJ |j                         \  }}|j                         }||d   j                         d   d   k  sJ ||d   j                         d   d   k\  r}J  y )Nr"   r  r   r   T)r}  rB   rW   r|   rE   left_axright_axr   rM   )
r   r2   r3   r4   r8   r   hasattrr7  r   r9  )r:   r;   rJ   rl   r<  r=  r  s          r<   test_line_lim_subplotsz)TestDataFramePlots.test_line_lim_subplots  s    ryy,,Q/66v>Xww4$w7$6: 	6B2y)))r:...JD$LLNE58,,.q1!444458,,.q1"5555	6r>   zX2020-12-01 this has been failing periodically on the ymin==0 assertion for a week or so.)r   rU   c                 *   t        t        j                  j                  d      j                  d      g d      }| }t	        |j
                  j                  |      }|j                         \  }}|j                         \  }}|j                         }	||	d   j                         d   d   k  sJ ||	d   j                         d   d   k\  sJ |dk(  sJ t	        |j
                  j                  |      }|j                         \  }}|dk(  sJ y )Nr"   rB  rC  r   r`  r   rM   )r   r2   r3   r4   r   r8   rE  r7  get_ylimr   r9  )
r:   rW  r;   neg_dfrl   r<  r=  yminymaxr  s
             r<   test_area_limz TestDataFramePlots.test_area_lim  s     II!!!$++F3=T
 rww||W=[[]
d[[]
duQx((*1-a0000uQx((*1-b1111qyyv{{//A[[]
dqyyr>   c                    t        t        j                  j                  d      j                  d      ddg      }t        j
                  j                  ddd      \  }\  }}|j                  |d	
       |j                  |d	
       t        |      j                  ||      sJ t        |      j                  ||      sJ y )Nr"   r%   r"   rY   rZ   r   rD   T)shareyrE  )rl   rQ  )
r   r2   r3   r4   r   r   rB   r8   r   joined)r:   r;   figrY  rZ  s        r<   test_area_sharey_dont_overwritez2TestDataFramePlots.test_area_sharey_dont_overwrite  s    ryy,,Q/66v>c
S**--a4-@Zc3
3V$
3V$#%%c3///#%%c3///r>   c                     t        t        j                  j                  d      j	                  d            }|j
                  j                  |d      }|j                  D ]  }|j                         dk(  rJ  y )Nr"   rp   rp   )rW  	linewidth)	r   r2   r3   r4   r5   r8   r   patchesget_linewidth)r:   rW  r;   rl   rs        r<   test_bar_linewidthz%TestDataFramePlots.test_bar_linewidth  sd    ryy,,Q/??GHWW[[A[6 	*A??$)))	*r>   c                 "   t        t        j                  j                  d      j	                  d            }|j
                  j                  dd      }t        |dd       |D ](  }|j                  D ]  }|j                         dk(  rJ  * y )Nr"   r  T)r  rB   rp   )rp   rD   rE   )
r   r2   r3   r4   r5   r8   r   r   r  r  )r:   r;   rJ   rl   r  s        r<   test_bar_linewidth_subplotsz.TestDataFramePlots.test_bar_linewidth_subplots  s    ryy,,Q/??GHww{{Q{6$6: 	.BZZ .(A---.	.r>   z	meth, dim)r   	get_width)barh
get_heightc                 ^   t        t        j                  j                  d      j	                  d            }d} t        |j                  |      ||      }|j                  D ]G  }|s- t        ||             |t        |j                        z  k(  r0J  t        ||             |k(  rGJ  y )Nr"   r  ?)rW  width)
r   r2   r3   r4   r5   r   r8   r  r   r/   )r:   methdimrW  r;   r  rl   r  s           r<   test_bar_barwidthz$TestDataFramePlots.test_bar_barwidth  s    
 ryy,,Q/??GH#WRWWd#G5A 	2A&wq#(EC

O,CCCC&wq#(E111		2r>   c                    t        t        j                  j                  d      j	                  d            }d} t        |j                  |      |d      }|D ])  }|j                  D ]  } t        ||             |k(  rJ  + y )Nr"   r  r  T)r  rB   )r   r2   r3   r4   r5   r   r8   r  )r:   r  r  r;   r  rJ   rl   r  s           r<   test_barh_barwidth_subplotsz.TestDataFramePlots.test_barh_barwidth_subplots  s     ryy,,Q/??GH%wrww%EDA 	2BZZ 2&wq#(E1112	2r>   c                    t        t        j                  j                  d      j                  d            }|j                  j                  dd      }|j                  D cg c]  }|j                          }}|dgdz  k(  sJ |j                  j                  dg d      }|j                  d d	 D cg c]  }|j                          }}|g dk(  sJ y c c}w c c}w )
Nr"   r  FrD   )rW  bottom   T)rM   rp   )r   r2   r3   r4   r8   r   r  get_yr:   r;   rl   pr   s        r<   test_bar_bottom_left_bottomz.TestDataFramePlots.test_bar_bottom_left_bottom  s    ryy,,Q/66v>?WW[[q[1%'ZZ0!'')00!r!!!WW[[.B[C%'ZZ^4!'')44---- 1 5s   #C7Cc                    t        t        j                  j                  d      j                  d            }|j                  j                  dt        j                  g d            }|j                  D cg c]  }|j                          }}|dgdz  k(  sJ |j                  j                  dg d	      }|j                  d d
 D cg c]  }|j                          }}|g d	k(  sJ y c c}w c c}w )Nr"   r  FrD   rD   rD   rD   rD   )rW  leftrD   r  Tr   rp   )	r   r2   r3   r4   r8   r  r   r  get_xr  s        r<   test_bar_bottom_left_leftz,TestDataFramePlots.test_bar_bottom_left_left  s    ryy,,Q/66v>?WW\\%bhh.G\H%'ZZ0!'')00!r!!!WW\\$_\=%'ZZ^4!'')44((( 1 5s   8C/C4c                    t        t        j                  j                  d      j                  d            }|j                  j                  dd      }|D ]4  }|j                  D cg c]  }|j                          }}|dgdz  k(  r4J  |j                  j                  dt        j                  g d            }|D ]4  }|j                  D cg c]  }|j                          }}|d	gdz  k(  r4J  y c c}w c c}w )
Nr"   r  TrM   )rB   r  rp   r  )rB   r  rD   )r   r2   r3   r4   r8   r   r  r  r  r   r  )r:   r;   rJ   rl   r  r   s         r<   test_bar_bottom_left_subplotsz0TestDataFramePlots.test_bar_bottom_left_subplots  s    ryy,,Q/66v>?ww{{D{4 	&B)+4Aaggi4F4bTAX%%%	& ww||T0I|J 	%B)+4Aaggi4F4aS1W$$$	%	 5
 5s   (C:C?c                     t        dt        j                  dgg dg dd      }|j                  j	                         }g d}|j
                  D cg c]  }|j                          }}||k(  sJ y c c}w )Nr$      rp   r$   r  r   r   r*   r   	r$   r   r  rp   r$   r  rD   r"   rW   )r   r2   r   r8   r   r  r  r:   r;   rl   expectedr  r   s         r<   test_bar_nanzTestDataFramePlots.test_bar_nan  sb    b"&&"-KiPQWW[[]2*,**5Q!,,.55!!! 6s   A2c                 `   t        dt        j                  dgg dg dd      }|j                  j	                  d      }g d}|j
                  D cg c]  }|j                          }}||k(  sJ |j
                  D cg c]  }|j                          }}g d	}||k(  sJ y c c}w c c}w )
Nr$   r  r  r   r  Tr`  r  )	r2  r2  r2        $@r2  g      4@g      .@r  g      D@)r   r2   r   r8   r   r  r  r  r  s         r<   test_bar_nan_stackedz'TestDataFramePlots.test_bar_nan_stacked  s    b"&&"-KiPQWW[[[&2*,**5Q!,,.55!!!%'ZZ0!'')00E!!! 6 1s   B&B+c                 V   t        g dg dg dd      }|j                  j                  d      }|j                  |j                  d          g d}|j
                  D cg c]  }|j                  d	    }}t        j                  ||       t        j                  d
       y c c}w )N)rW   r   rD   )r   r"   r%   )rp   r   r"   r  Tr`  rM   )r   r4        @rD   all)r   r8   r   	bar_label
containerstextsxyr	  assert_almost_equalpltclose)r:   r;   rl   r  textr   s         r<   0test_bar_stacked_label_position_with_zero_heightzCTestDataFramePlots.test_bar_stacked_label_position_with_zero_height  s    YYYGHWW[[[&
R]]2&'")+2$''!*22
vx0		% 3s   "B&c           	      d   t        t        j                  j                  d      j	                  d       |t        d             |t        d                  }|j                  j                         }|j                  j                         }t        j                  |t        j                  g d             |j                         dk(  sJ |j                  d   j                         d	k(  sJ |j                  d
   j                         dk(  sJ |j                  j                  d      }t        j                  |t        j                  g d             |j                         dk(  sJ |j                  d   j                         d	k(  sJ |j                  d
   j                         dk(  sJ y )Nr"   )r   rp   ABCDEFabcder%  )r   rD   r"   rW   r%   rp   )g      g      @r   g      пrM   g@Tr`  g      @)r   r2   r3   r4   r5   r6   r8   r   r   get_ticklocsr	  rI  r   r7  r  r  )r:   rf  r;   rl   tickss        r<   test_bar_categoricalz'TestDataFramePlots.test_bar_categorical  sR    II!!!$44V<d8n%W&
 WW[[]%%'
##E2884F+GH{{}+++zz!}""$---zz"~##%---WW[[[&
##E2884F+GH{{}+++zz!}""$---zz"~##%---r>   zx, yrD   r"   c                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }t        |j                  j                  ||       y )Nr"   rB  r   rC  r%  rX   )r   r2   r3   r4   r5   r6   ri   rj   r   r8   r   r:   rY   rZ   r;   s       r<   test_plot_scatterz$TestDataFramePlots.test_plot_scatter1  sW    II!!!$44V<v++BQ/0+
 	"''//Q!4r>   c                 4   t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }t        j                  d      }t        j                  t        |      5  |j                  j                  d	       d d d        t        j                  d
      }t        j                  t        |      5  |j                  j                  d       d d d        y # 1 sw Y   _xY w# 1 sw Y   y xY w)Nr"   rB  r   rC  r%  z5scatter() missing 1 required positional argument: 'y'r[   rY   r   z5scatter() missing 1 required positional argument: 'x'rZ   r   )r   r2   r3   r4   r5   r6   ri   rj   reescaper^   r_   	TypeErrorr8   r   rb   s      r<   test_plot_scatter_errorz*TestDataFramePlots.test_plot_scatter_error;  s    II!!!$44V<v++BQ/0+

 iiOP]]9C0 	#GGOOcO"	#iiOP]]9C0 	#GGOOcO"	# 	#	# 	#	# 	#s   DDDDc                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }|j                  dddd	
      }t        |dd       y )Nr"   rB  r   rC  r%  rY   rZ   r   T)rY   rZ   rQ  rB   rD   r   rE   )
r   r2   r3   r4   r5   r6   ri   rj   r8   r   rI   s      r<   test_plot_scatter_shapez*TestDataFramePlots.test_plot_scatter_shapeH  se    II!!!$44V<v++BQ/0+
 ww)dwC$6:r>   c                     t        t        j                  j                  d      j	                  d      dg      }t        ddd      j                  |d<   |j                  d	dd
       y )Nr"   r$   r   r   z
2014-01-01h)startr-   r,   dtimer   )rQ  rY   rZ   )r   r2   r3   r4   r5   r   timer8   r9   s     r<   "test_scatter_on_datetime_time_dataz5TestDataFramePlots.test_scatter_on_datetime_time_dataR  sV     ryy,,Q/??CcUS |#rJOO7
Y'S1r>   c                    t        t        d      D cg c]  }t        ddd|      |f c}ddg      }t        j	                  dd	
      \  }}|j
                  j                  dd|d          |d   j                         }|j                  dd|d          |d   j                         }|d   |d   k(  sJ |d   |d   k(  sJ y c c}w )NrW   i  rD   )yearmonthdayhourr   rZ   r   r"   T)sharexr   )rY   rZ   rl   rM   )r   r   r   r  rB   r8   r   
get_xticks)r:   nr;   r  rl   scatter_xticksline_xtickss          r<   test_scatter_line_xticksz+TestDataFramePlots.test_scatter_line_xticksY  s    GLQxP!hDqq91=P%
 ,,q,.R
*16A))+
*1.e&&(a KN222b![_444 Qs   C	r   valsr   rD   c                    t        t        ddd      dd      }t        j                  j	                  d      j                  ddt        |            }t        ||d      }t        |j                  j                  ||	       y )
Ni  rD      W)r  r,   r-   r"   r   r  rX   )r   r   r2   r3   r4   normalr   r   r   r8   r   )r:   rY   rZ   r   r  r;   s         r<   test_scatterplot_datetime_dataz1TestDataFramePlots.test_scatterplot_datetime_datag  se     dAq!12CHyy$$Q'..q!SZ@56"''//Q!4r>   infer_stringpyarrow)marksri  b_colr"   rW   r%   r   c                     t        d|      5  t        g d|d      }t        |j                  j                  ||       d d d        y # 1 sw Y   y xY w)Nzfuture.infer_stringr  ri  rX   )r   r   r   r8   r   )r:   r  rY   rZ   r  r;   s         r<   test_scatterplot_object_dataz/TestDataFramePlots.test_scatterplot_object_datap  sG     1<@ 	9u=>Bbggooa8	9 	9 	9s   3A		Aordered
categories)setosa
versicolor	virginica)r  r  r  c                    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                  j	                  ddd      }|j
                  \  }|j                  }t        j                  g d      }|j                         }t        j                  ||       t        j                  g d      }	|j                  }
t        j                  |
|	       |}|j                  j                         D cg c]  }|j                          }}t!        d t#        ||d      D              sJ y c c}w )Ngffffff@g      @g@r5  r  g	@g@g@lengthr  r   )r  r  r  r  r  )r   r  speciesr   rD   rY   rZ   r   )      ?g      ?g      @r1  c              3   ,   K   | ]  \  }}||k(    y wNr  ).0ijs      r<   	<genexpr>zKTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<genexpr>  s       
1 F
s   Tr   )r   r   Categoricalr8   r   collectionscolorbarr2   r   	get_ticksr	  rI  _boundariesrl   get_ymajorticklabelsget_textr  r   )r:   r   r  r;   rl   colorbar_collectionr  expected_ticksresult_ticksexpected_boundariesresult_boundariesexpected_yticklabelsr  result_yticklabelss                 r<   %test_scatterplot_color_by_categoricalz8TestDataFramePlots.test_scatterplot_color_by_categorical|  s>    3Z#sc3Z#sc3ZHw'
 H!
9
 WW__qA_3!#	&///2))+
##L.A hh';<$00
##$57JK)4<KK4T4T4VWqajjlWW 
.0DTR
 
 	
 
 Xs   E)rX   )rZ   rY   )rZ   rZ   c                     t        g dt        j                  g d      d      }t        |j                  j
                  ||       y )Nr   )r   r   r   r   rX   )r   r   r  r   r8   r   r  s       r<   'test_plot_scatter_with_categorical_dataz:TestDataFramePlots.test_plot_scatter_with_categorical_data  s1     \?S0TUV"''//Q!4r>   zx, y, cr   )r   rD   r"   c                    t        t        j                  j                  d      j	                  ddd      t        t        j                  d d       g d      }|j                  j                  |||	      }|j                  d   j                  j                  d
k(  sJ |j                  d   j                  j                  j                         dk(  sJ y )Nr"   r   rr   rB  lowhighsizer   rC  r%  r  Greysr   )r   r2   r3   r4   r   r6   ri   rj   r8   r   r  cmapr   r  rl   
get_ylabel)r:   rY   rZ   r   r;   rl   s         r<   test_plot_scatter_with_cz+TestDataFramePlots.test_plot_scatter_with_c  s    II!!!$--!#F-Kv++BQ/0+
 WW__qA_+~~a %%**g555~~a )),,779S@@@r>   c                 ^   t        t        j                  j                  d      j	                  ddd      t        t        j                  d d       g d      }d	}|j                  j                  d
dd|      }|j                  d   j                  j                  |k(  sJ |j                  j                  d
ddd      }|j                  d   j                  J |j                  j                  ddd      }|j                  d   j                  J t        |j                  dg       y )Nr"   r   rr   rB  r"  r   rC  r%  	cubehelixrY   rZ   r   )rY   rZ   r   colormapF)rY   rZ   r   r  rD   redr  r  
facecolors)r   r2   r3   r4   r   r6   ri   rj   r8   r   r  r'  r   r  r   )r:   r;   cmrl   s       r<   test_plot_scatter_with_c_propsz1TestDataFramePlots.test_plot_scatter_with_c_props  s   II!!!$--!#F-Kv++BQ/0+

 WW__scS2_>~~a %%**b000 WW__scS5_A~~a ))111 WW__qA_/~~a ))111bnn#7r>   c                 p   t        ddgddgd      }g d}g d}t        j                  ||g      }|j                  j	                  dd	|
      }t        j                  |j                  d   j                         |       t        j                  ddg      }|j                  j	                  dd	|d       y )NrD   r"   rW   r%   r   )r3  r2  r2  r3  )r2  r3  r2  r3  r   r*   r  r   r2  r3  spring)rY   rZ   r   r'  )	r   r2   r   r8   r   r	  rI  r  get_facecolor)r:   r;   red_rgba
green_rgba
rgba_arrayrl   float_arrays          r<   test_plot_scatter_with_c_arrayz1TestDataFramePlots.test_plot_scatter_with_c_array  s     aV1a&12')
XXx45
WW__scZ_8
 	##BNN1$5$C$C$EzR hhSz*
#(Cr>   c                 :   t        t        j                  j                  d      j                  d      dz  g d      }|j                  j                  ddd	      }t        j                  |d   j                  |j                  d
   j                                y )Nr"   rf   rr   r   r   r   r   r   )rY   rZ   r   r   )right)r   r2   r3   r4   r8   r   r	  rI  valuesr  	get_sizesrk   s      r<   test_plot_scatter_with_sz+TestDataFramePlots.test_plot_scatter_with_s  st    II!!!$++G4s:O
 WW__scS_1
##BsGNN"..:K:U:U:WXr>   c                 4   t        t        j                  j                  d      j                  d      dz  g d      }t        j
                  j                         }|j                  j                  ddd|	      }|j                  d
   j                  |u sJ y )Nr"   rf   rr   r   r   r   r   r   )rY   rZ   r   normr   )r   r2   r3   r4   r   colorsLogNormr8   r   r  r@  )r:   r;   r@  rl   s       r<   test_plot_scatter_with_normz.TestDataFramePlots.test_plot_scatter_with_norm  s{    II!!!$++G4s:O
 zz!!#WW__scSt_<~~a %%---r>   c                    t        t        j                  j                  d      j                  d      dz  g d      }|j                  j                  ddd	      }|j                  d
   j                  }|j                  j                         |j                  j                         f}t        j                  j                  | }|j                  D ]  } ||       ||      k(  rJ  y )Nr"   rf   rr   r   r   r   r   r   r  r   )r   r2   r3   r4   r8   r   r  r@  r   minmaxr   rA  	Normalize)r:   r;   rl   	plot_normcolor_min_maxdefault_normvalues          r<   test_plot_scatter_without_normz1TestDataFramePlots.test_plot_scatter_without_norm  s    II!!!$++G4s:O
 WW__scS_1NN1%**	RTTXXZ0zz++];TT 	;EU#|E'::::	;r>   legendr@   c                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }t        |j                  j                  fi | y )Nr"   rB  r   onetwothreerD  r%  )r   r2   r3   r4   r5   r6   ri   rj   r   r8   r   ry   s      r<   test_plot_barz TestDataFramePlots.test_plot_bar  sZ     II!!!$44V<v++BQ/03
 	"''++00r>   c                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       t        d            }t        |j                  j                         y )Nr"   )r$      r$   rU  r%  )r   r2   r3   r4   r5   r6   ri   rj   r   r   r8   r   r9   s     r<   test_plot_bar_int_colz(TestDataFramePlots.test_plot_bar_int_col  sW    II!!!$44X>v++CR01"I

 	"''++&r>   c                     t        ddgddgd      }t        |j                  j                        }t	        |d       |j                  j                  dd      }t	        |ddd	       y )
Nr   rD   ri  Z   rR   #   r$   rotfontsizerS   
xlabelsize
ylabelsize)r   r   r8   r   r   rk   s      r<   test_plot_bar_ticksz&TestDataFramePlots.test_plot_bar_ticks  sY    aV1a&12rww{{+2B'WW[[R"[-2B2"Er>   c                     t        ddgddgd      }t        |j                  j                        }t	        |d       |j                  j                  dd      }t	        |ddd       y )	Nr   rD   ri  )yrot7      rZ  )rb  r_  r^  )r   r   r8   r  r   rk   s      r<   test_plot_barh_ticksz'TestDataFramePlots.test_plot_barh_ticks   sY    aV1a&12rww||,2A&WW\\b2\.2B2"Er>   c           	         |}|j                         j                  }|D cg c]  }t        |       }}t        |j                  j
                        }t        |j                         |       t        j                  |j                  j                         t        j                  dt        |      dz                t        |j                        dt        |      z  k(  sJ y c c}w )NrD   r   )_get_numeric_datar/   r   r   r8   boxr   r   r	  rI  r   r  r2   r   r   r  )r:   hist_dfr;   numeric_colsr   labelsrl   s          r<   test_boxplotzTestDataFramePlots.test_boxplot)  s    ++-55+78a,q/88rww{{+2--/8
##HH!!#RYYq#l2Ca2G%H	
 288}C$5 5555 9s   C#c                     |}|d   }|j                   j                  d      }t        |dd       t        |j                   j                         y )Nheight(   r[  r   rS   rb  )r8   rh  r   r   )r:   ri  r;   seriesrJ   s        r<   test_boxplot_seriesz&TestDataFramePlots.test_boxplot_series5  s@    H{{2&4bq1&++//*r>   c                    |}t        j                  g d      }|j                  j                  |      }|j	                         j
                  }|D cg c]  }t        |       }}t        |j                         |       t        j                  |j                  j                         |       t        |j                        dt        |      z  k(  sJ y c c}w )N)rD   r   r   )	positionsr   )r2   r   r8   rh  rg  r/   r   r   r   r	  rI  r   r  r   r  )r:   ri  r;   ru  rl   rj  r   rk  s           r<   test_boxplot_series_positionsz0TestDataFramePlots.test_boxplot_series_positions=  s    HHY'	WW[[9[-++-55+78a,q/882--/8
##BHH$9$9$;YG288}C$5 5555 9s   Cz!ignore:set_ticklabels:UserWarning3.10z#Fails starting with matplotlib 3.10c                    |}|j                         j                  }|D cg c]  }t        |       }}t        t        j
                        t        d      k  rddinddi} |j                  j                  dddd|}t        |d	dd
       t        |j                         |       t        |j                        dt        |      z  k(  sJ y c c}w )Nrw  vertForientation
horizontal2   r   rZ  r   rS   rb  r_  r   r  )rg  r/   r   r   r   __version__r8   rh  r   r   get_yticklabelsr   r  )r:   ri  r;   rj  r   rk  rn   rl   s           r<   test_boxplot_verticalz(TestDataFramePlots.test_boxplot_verticalG  s     ++-55+78a,q/88
 s''&/9 UO. 	
 RWW[[6R!6v62AB1=2--/8288}C$5 5555 9s   Czignore::UserWarningz+Fails starting with matplotlib version 3.10c                    |}|j                         j                  }|D cg c]  }t        |       }}t        t        j
                        t        d      k  rddinddi}t        |j                  j                  fdddd|}t        |dd	
       t        |d       t        ||d      D ]:  \  }}	t        |j                         |	g       t        |j                        dk(  r:J  y c c}w )Nrw  ry  Frz  r{  T)rA   rB   r   rW   )rD   rW   rE   r   r   r   r   )rg  r/   r   r   r   r~  r   r8   rh  r   r   r   r   r  r   r  )
r:   ri  r;   rj  r   rk  rn   rJ   rl   r   s
             r<   test_boxplot_vertical_subplotsz1TestDataFramePlots.test_boxplot_vertical_subplots\  s     ++-55+78a,q/88 s''&/9 UO. 	
 !GGKK
&*T
HN
 	$6:U+T6$7 	&IBr113eW=rxx=A%%%	& 9s   C-c                    |}|j                         j                  }|D cg c]  }t        |       }}t        j                  g d      }t        t        j                        t        d      k  rddinddi} |j                  j                  d	d|i|}t        |j                         |       t        j                  |j                  j                         |       t!        |j"                        dt!        |      z  k(  sJ y c c}w )
N)rW   r"   r   rw  ry  Frz  r{  ru  r   r  )rg  r/   r   r2   r   r   r   r~  r8   rh  r   r  r	  rI  r   r  r   r  )	r:   ri  r;   rj  r   rk  ru  rn   rl   s	            r<   test_boxplot_vertical_positionsz2TestDataFramePlots.test_boxplot_vertical_positionss  s     ++-55+78a,q/88HHY'	 s''&/9 UO. 	
 RWW[[79772--/8
##BHH$9$9$;YG288}C$5 5555 9s   Dc                 L   t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }d}t        j                  t        |      5  |j                  j                  d	       d d d        y # 1 sw Y   y xY w)
Nr"   rB  r   rO  r%  z2return_type must be {None, 'axes', 'dict', 'both'}r[   
not_a_typereturn_type)r   r2   r3   r4   r5   r6   ri   rj   r^   r_   r  r8   rh  rb   s      r<    test_boxplot_return_type_invalidz3TestDataFramePlots.test_boxplot_return_type_invalid  s~    II!!!$44V<v++BQ/03

 C]]:S1 	2GGKKLK1	2 	2 	2s   4BB#r  )dictrJ   bothc                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }|j                  j                  |      }t        ||       y )Nr"   rB  r   rO  r%  r  )r   r2   r3   r4   r5   r6   ri   rj   r8   rh  r   )r:   r  r;   r   s       r<   %test_boxplot_return_type_invalid_typez8TestDataFramePlots.test_boxplot_return_type_invalid_type  sa    II!!!$44V<v++BQ/03

 5v{3r>   c                 L   t        j                  d       t        t        j                  j                  d      j                  d            }t        |j                  d      }|j                  D cg c]  }t        |       }}t        ||       t        |d       y c c}w )	Nscipyr"   r#   kderQ  rk  r   rR   )r^   importorskipr   r2   r3   r4   r5   r   r8   r/   r   r   r   )r:   r;   rl   r   r  s        r<   test_kde_dfzTestDataFramePlots.test_kde_df  sx    G$ryy,,Q/??HIrwwU3-/ZZ8LO88R12A& 9s   2B!c                     t        j                  d       t        t        j                  j                  d      j                  d            }|j                  ddd      }t        |ddd       y )	Nr  r"   r#   r  r  rp   )rQ  r[  r\  r]  )	r^   r  r   r2   r3   r4   r5   r8   r   rk   s      r<   test_kde_df_rotz"TestDataFramePlots.test_kde_df_rot  sV    G$ryy,,Q/??HIWW%R!W42B1Cr>   c                     t        j                  d       t        t        j                  j                  d      j                  d            }t        |j                  ddd      }t        |dd	       y )
Nr  r"   r#   Tr  )rA   rQ  rB   r%   rC   rE   )
r^   r  r   r2   r3   r4   r5   r   r8   r   rI   s      r<   test_kde_df_subplotsz'TestDataFramePlots.test_kde_df_subplots  s\    G$ryy,,Q/??HI GG	
 	$6:r>   c                     t        j                  d       t        t        j                  j                  d      j                  d            }|j                  ddd      }t        |d       y )	Nr  r"   r#   r  T)rQ  r   rB   r   r   )	r^   r  r   r2   r3   r4   r5   r8   r   rI   s      r<   test_kde_df_logyz#TestDataFramePlots.test_kde_df_logy  sR    G$ryy,,Q/??HIwwEtw<U+r>   c                    t        j                  d       t        t        j                  j                  d      j                  d            }t        j                  |j                  d<   t        |j                  d       y )Nr  r"   rr   r%   r%  r   r   r  r  )r^   r  r   r2   r3   r4   uniformr   locr   r8   r9   s     r<   test_kde_missing_valsz(TestDataFramePlots.test_kde_missing_vals  sV    G$ryy,,Q/77X7FGvvt"''.r>   c                    t        t        j                  j                  d      j	                  d            }t        |j                  j                        }|j                  D cg c]  }t        |       }}t        ||       t        |j                  j                  ddd      }t        |dd       t        |d	
       y c c}w )Nr"   r  r  T)rA   rB   r   r%   rC   rE   r   r   )r   r2   r3   r4   r5   r   r8   r   r/   r   r   r   r   )r:   r;   rl   r   r  rJ   s         r<   test_hist_dfzTestDataFramePlots.test_hist_df  s    ryy,,Q/??IJrww||,-/ZZ8LO88R1 GGLL	
 	$6:U+ 9s   %Cc                     t        t        j                  j                  d      j                  d            }|j                  j                  d      }t        |dd       y )Nr"   r$   ro  rp  r   rq  )r
   r2   r3   r4   r8   r   r   )r:   rr  rJ   s      r<   test_hist_df_seriesz&TestDataFramePlots.test_hist_df_series  sI    		--a077;<{{B'4bq1r>   c                    t        t        j                  j                  d      j                  d            }|j                  j                  ddd      }|j                         D cg c])  }t        |t        j                  j                        s(|+ }}t        j                  |d   j                         d       y c c}w )Nr"   r$   Tr%   )
cumulativebinsdensityrM   r3  r
   r2   r3   r4   r8   r   get_childrenr  r   r  	Rectangler	  r  r  r:   rr  rl   rY   rectss        r<   &test_hist_df_series_cumulative_densityz9TestDataFramePlots.test_hist_df_series_cumulative_density  s    		--a077;<[[AtDOO-VqAs{{?T?T1UVV
uRy335s; Ws   ()C C c                    t        t        j                  j                  d      j                  d            }|j                  j                  dd      }|j                         D cg c])  }t        |t        j                  j                        s(|+ }}t        j                  |d   j                         d       y c c}w )Nr"   r$   Tr%   )r  r  r  r  r  r  s        r<   test_hist_df_series_cumulativez1TestDataFramePlots.test_hist_df_series_cumulative  s    		--a077;<[[A6OO-VqAs{{?T?T1UVV
uRy335t< Ws   ')B?B?c                     t        t        j                  j                  d      j	                  d            }|j
                  j                  ddd      }t        |ddd       y )	Nr"   r#   r|  r   r{  )r[  r\  rz  r   r}  )r   r2   r3   r4   r5   r8   r   r   rI   s      r<   test_hist_df_orientationz+TestDataFramePlots.test_hist_df_orientation  sL    ryy,,Q/??HIww||QL|I4abQ?r>   weight_shape)rr   )rr   r"   c           
         dt        j                  |      z  }t        t        t	        ddgt         j
                  j                  d      j                  d      d                  }t        |j                  d	|
      }t        |j                  d	      }|j                  D cg c]  }|j                          }}|j                  D cg c]  }d|j                         z   }}t        j                  ||       y c c}w c c}w )N皙?)shaper   r*   r"   )r"   rr   Tr   r   )rQ  weightsr  )r2   onesr   r  r   r3   r4   r5   r   r8   r  r  r	  r  )	r:   r  r  r;   rY  rZ  patchpatch_height_with_weightsexpected_patch_heights	            r<   test_hist_weightsz$TestDataFramePlots.test_hist_weights  s     l33#JII))!,<<XF
  fgFf5EH[[$QEU%5%5%7$Q!$Q HK{{ Seu'7'7'9!9 S S
8:OP %R !Ts   %C?Dc                    t        j                  |D cg c]  }|j                          c}      }t        j                  |D cg c]  }|j                          c}      }t        j                  |D cg c]  }|j	                          c}      }	t        j                  |D cg c]  }|j                          c}      }
|t        j                  ||d       |t        j                  ||d       |t        j                  |	|d       |t        j                  |
|d       y y c c}w c c}w c c}w c c}w )NF)check_dtype)r2   r   r  r  r  r  r	  rI  )r:   r  
expected_y
expected_h
expected_x
expected_wr  result_yresult_heightresult_xresult_widths              r<   _check_box_coordz#TestDataFramePlots._check_box_coord  s     8881QWWY89'!BQ!,,.!BC8881QWWY89xx @1 @A !''*%P!''zuU!''*%P!''jeT " 9!B8 @s   D/D46D9'D>rm  r   r$   	   r   r   r   r   r   r   r   r   r   r   r   r  r$   r  r"   rW   rp   )rW   r$   r  r   r   r   )r   rW   r   r   r   r   )r   r   r   rW   r  r$   c                    t        |      }|j                  j                  d      }| j                  |j                  d d t        j                  g d      t        j                  g d             | j                  |j                  dd t        j                  g d      t        j                  g d             | j                  |j                  dd  t        j                  g d      t        j                  g d             |j                  j                  dd	
      }| j                  |j                  d d t        j                  g d      t        j                  g d             | j                  |j                  dd t        j                  g d      t        j                  g d             | j                  |j                  dd  t        j                  g d      t        j                  g d             |j                  j                  dd	d	      }| j                  |d   j                  t        j                  g d      t        j                  g d             | j                  |d   j                  t        j                  g d      t        j                  g d             | j                  |d   j                  t        j                  g d      t        j                  g d             |j                  j                  dd      }| j                  |j                  d d t        j                  g d      t        j                  g d             | j                  |j                  dd t        j                  g d      t        j                  g d             | j                  |j                  dd  t        j                  g d      t        j                  g d             |j                  j                  dd	d      }| j                  |j                  d d t        j                  g d      t        j                  g d             | j                  |j                  dd t        j                  g d      t        j                  g d             | j                  |j                  dd  t        j                  g d      t        j                  g d             |j                  j                  dd	d	d      }| j                  |d   j                  t        j                  g d      t        j                  g d             | j                  |d   j                  t        j                  g d      t        j                  g d             | j                  |d   j                  t        j                  g d      t        j                  g d             y )Nrp   )r  )r   r   r   r   r   r  )r  r  r$   r  r  T)r  rW  )      r   rU     )r  rW  rB   r   rD   r"   r{  )r  rz  )r  r  )r  rW  rz  )r  rW  rB   rz  )r   r8   r   r  r  r2   r   )r:   rm  r;   rl   rJ   s        r<   test_hist_df_coordz%TestDataFramePlots.test_hist_df_coord  s   , t_WW\\q\!JJrNxx0xx 01 	 	

 	JJqxx0xx0 	 	

 	JJrsOxx0xx 01 	 	
 WW\\q$\/JJrNxx0xx 01 	 	

 	JJqxx 01xx0 	 	

 	JJrsOxx 45xx 01 	 	
 ww||D4|@GOOxx0xx 01 	 	

 	GOOxx0xx0 	 	

 	GOOxx0xx 01 	 	
 WW\\ql\;JJrNxx0xx 01 	 	

 	JJqxx0xx0 	 	

 	JJrsOxx0xx 01 	 	
 WW\\q$L\IJJrNxx0xx 01 	 	

 	JJqxx 01xx0 	 	

 	JJrsOxx 45xx 01 	 	
 ww||D4\  
 	GOOxx0xx 01 	 	

 	GOOxx0xx0 	 	

 	GOOxx0xx 01 	 	
r>   c                     t        t        j                  j                  d      j	                  d            j                         }t        |j                  d       y )Nr"   r  TrM  )r   r2   r3   r4   r5   cumsumr   r8   r9   s     r<   test_plot_int_columnsz(TestDataFramePlots.test_plot_int_columns  s=    ryy,,Q/??IJQQS"''$/r>   markers^+o)r  r  r  c                    t         j                         }|j                          |j                  d       t	        t
        j                  j                  d      j                  d            }|j                  |      }t        |j                         d t        |             D ]  \  }}|j                         ||   k(  rJ  y )No   r"   rf   )style)r  gcfclfadd_subplotr   r2   r3   r4   r5   r8   	enumerater   r   
get_marker)r:   r  r  r;   rl   rf  ra   s          r<   test_style_by_columnz'TestDataFramePlots.test_style_by_column  s     ggi	ryy,,Q/??HIWW7W#"2<<>.CL#AB 	5IC??$444	5r>   c                     t        ddg      }|j                         }|j                         J |j                  d      }|j                         j                         d   j	                         dk(  sJ y )NrD   r"   Tr  r    )r
   r8   
get_legend	get_textsr  )r:   r   rl   s      r<   test_line_label_nonez'TestDataFramePlots.test_line_label_none  sg    Aq6NVVX}}&&&VV4V }}((*1-668B>>>r>   zprops, expected))boxpropsboxes)whiskerpropswhiskers)cappropscaps)medianpropsmediansc           	         t        dD ci c]1  }|t        j                  j                  d      j                  d      3 c}      }|ddii} |j                  j
                  d	ddi|}||   d   j                         dk(  sJ y c c}w )
NABCr"   rr   colorC1r  r  r   r  )r   r2   r3   r4   r8   rh  	get_color)r:   propsr  kr;   kwdr   s          r<   !test_specified_props_kwd_plot_boxz4TestDataFramePlots.test_specified_props_kwd_plot_box  s     OA299003::3??OPwo&7737h",,.$666	 Ps   6Bc                    t        ddd      t        ddd      t        ddd      g}g d}t        t        j                  |      |dg      }|j	                         }|j
                  d	   j                         }t        j                  |t        j                  |t        
             |j
                  d	   j                         }t        j                  |t        j                  |             |j                  j                         }|D cg c]  }|j                         d	    }}t        |      j                  sJ |D cg c]  }|j!                          }	}t#        j$                  |	d      j                  sJ y c c}w c c}w )N  r$   rD   r  r   )r5  r4  r3  testr%  r   r'   z%Y-%m-%dr   )r   r   r2   r   r8   r  r  r	  rI  r7   rj  r   get_ticklabelsget_positionr   is_monotonic_increasingr  r   r   )
r:   r0   r<  r;   rl   rq   ydatarY   xlocsxlabelss
             r<   test_unordered_tsz$TestDataFramePlots.test_unordered_ts  s:   dB"Dq!$4d4A6FG HHVH

 WWY!&&(
##FBHHU&,IJ%%'
##E288F+;< ((*.45!!$55U|3333)/0A1::<00~~gj9QQQQ 60s   FFc                     t        j                  d       t        dg di      }|j                  |        t	        |j                  |              y Nr  rY   r   r  r^   r  r   r8   r   r:   rQ  r;   s      r<   test_kind_both_waysz&TestDataFramePlots.test_kind_both_ways  s@    G$Y'(
T r>   c                     t        j                  d       t        dg di      }|j                  dd|        t	        |j                  |      dd       y r  r  r  s      r<   test_kind_both_ways_x_yz*TestDataFramePlots.test_kind_both_ways_x_y  sH    G$Y'(
St$sC(r>   c                     t        t        d            }d}t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nabcdno numeric data to plotr[   r  )r   r6   r^   r_   r  r8   r:   rQ  r;   rc   s       r<   test_all_invalid_plot_dataz-TestDataFramePlots.test_all_invalid_plot_data  sF    tF|$']]9C0 	GGG	 	 	s   AAc                    t        t        j                  j                  d      j	                  d      t
              }d|t        j                  j                  d      j                  |j                  d         dkD  <   d}t        j                  t        |      5  |j                  |	       d d d        y # 1 sw Y   y xY w)
Nr"   r$   r"   r'   r   r   r	  r  r[   r  )r   r2   r3   r4   r5   r7   r  r^   r_   r  r8   r  s       r<   (test_partially_invalid_plot_data_numericz;TestDataFramePlots.test_partially_invalid_plot_data_numeric  s     II!!!$44W=
 BE299  #**288A;7#=>']]9C0 	GGG	 	 	s   B88Cc                     t        t        j                  j                  d      j	                  d            }d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr"   r  z*invalid_plot_kind is not a valid plot kindr[   invalid_plot_kindr  )	r   r2   r3   r4   r5   r^   r_   r  r8   rb   s      r<   test_invalid_kindz$TestDataFramePlots.test_invalid_kind  s]    ryy,,Q/??HI:]]:S1 	.GG,G-	. 	. 	.s   A11A:zx,y,lblr   r   r   c                     t        ddgddgddgd      }t        j                  t        d	      5  |j	                  |||
       d d d        y # 1 sw Y   y xY w)NrD   r"   rW   r%   rp   r   r  x must be a label or positionr[   rY   rZ   r   r   r^   r_   r  r8   )r:   rY   rZ   lblr;   s        r<   test_invalid_xy_argsz'TestDataFramePlots.test_invalid_xy_args  sW     aV1a&1v>?]]:-LM 	)GGa1CG(	) 	) 	)s   AAc                     t        ddgddgddgd      }d}t        j                  t        |	      5  |j	                  d
ddgd       d d d        y # 1 sw Y   y xY w)NrD   r"   rW   r%   rp   r   r  z.label should be list-like and same length as yr[   r   r*   r   	bad_labelr  r  rb   s      r<   test_bad_labelz!TestDataFramePlots.test_bad_label  s]    aV1a&1v>?>]]:S1 	<GGcc3Z{G;	< 	< 	<s   AAzx,yr   c                     t        g dg dgt        d            }t        j                  t        d      5  |j                  ||       d d d        y # 1 sw Y   y xY w)N)rD   rW   rp   )r"   r%   r   AABr   r  r[   rX   )r   r6   r^   r_   r  r8   r  s       r<   test_invalid_xy_args_dup_colsz0TestDataFramePlots.test_invalid_xy_args_dup_cols  sM     	9-tE{C]]:-LM 	GGa1G	 	 	s   AAzx,y,lbl,colorsr-  bluer   bokehcythongreenyellowc                    t        ddgddgddgd      }t        |j                  d||	       |j                  ||||
      }t        |j                        t        |      k(  sJ t        |j                         |       y )NrD   r"   rW   r%   rp   r   r  r   r  )rY   rZ   r   r  
linecolors)r   r   r8   r   r  r   r   )r:   rY   rZ   r  rA  r;   rl   s          r<   test_y_listlikez"TestDataFramePlots.test_y_listlike"  ss     aV1a&1v>?"''SAS9WWqASW7288}A&&&blln8r>   zx,y,colnamesc                 f    t        ddgddgd      }||_        t        |j                  ||       y )NrD   r"   rW   r%   r   rX   )r   r/   r   r8   )r:   rY   rZ   colnamesr;   s        r<   test_xy_args_integerz'TestDataFramePlots.test_xy_args_integer3  s2     aV1a&12
"''Q!,r>   c                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j
                  d      t        j                  j                  d      j	                  d      z   d      }|j                  j                  ddd      }t        |j                        d	k(  sJ y )
Nr"   r  r  r  r   r*   r$   )rY   rZ   gridsizerD   
r   r2   r3   r4   r  r   r8   r   r   r  rk   s      r<   test_hexbin_basicz$TestDataFramePlots.test_hexbin_basic:  s    YY**1-5525>YY**1-5525>YYr]RYY%:%:1%=%E%E2%E%NN
 WW^^cS2^62>>"a'''r>   c                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j
                  d      t        j                  j                  d      j	                  d      z   d      }|j                  j                  ddd      }t        |d	   j                  j                        dk(  sJ t        |d
d       y )Nr"   r  r  r  r   r*   T)rY   rZ   rB   r   rD   r   rE   )r   r2   r3   r4   r  r   r8   r   r   figurerJ   r   rI   s      r<   test_hexbin_basic_subplotsz-TestDataFramePlots.test_hexbin_basic_subplotsG  s    YY**1-5525>YY**1-5525>YYr]RYY%:%:1%=%E%E2%E%NN
 ww~~sT~: 47>>&&'1,,,$6:r>   reduce_Cc                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j
                  d      t        j                  j                  d      j	                  d      z   d      }|j                  j                  ddd|      }t        |j                        d	k(  sJ y )
Nr"   r  r  r  r   r*   r   )rY   rZ   r   reduce_C_functionrD   r/  )r:   r4  r;   rl   s       r<   test_hexbin_with_cz%TestDataFramePlots.test_hexbin_with_cW  s    YY**1-5525>YY**1-5525>YYr]RYY%:%:1%=%E%E2%E%NN
 WW^^cSC8^L2>>"a'''r>   zkwargs, expectedBuGnr,  r+  r'  YlGnc                    t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j
                  d      t        j                  j                  d      j	                  d      z   d      } |j                  j                  d	ddd|}|j                  d   j                  j                  |k(  sJ y )
Nr"   r  r  r  r   r*   rX   r   r  )r   r2   r3   r4   r  r   r8   r   r  r'  r   )r:   rn   r  r;   rl   s        r<   test_hexbin_cmapz#TestDataFramePlots.test_hexbin_cmapd  s     YY**1-5525>YY**1-5525>YYr]RYY%:%:1%=%E%E2%E%NN
 RWW^^3cS3F3~~a %%**h666r>   c                    t        t        j                  j                  d      j                  d      g dg d      }d}t	        j
                  t        |      5  |j                  j                          d d d        y # 1 sw Y   y xY w)Nr"   rp   rW   XYZr   r   r   der.   z/pie requires either y column or 'subplots=True'r[   )	r   r2   r3   r4   r^   r_   r  r8   r   rb   s      r<   test_pie_df_errz"TestDataFramePlots.test_pie_df_errw  sg    II!!!$++F3#+

 @]]:S1 	GGKKM	 	 	s   B  B	r@  c                    t        t        j                  j                  d      j                  d      g dg d      }t	        |j
                  j                  |      }t        |j                  |j                         y )Nr"   r=  r>  rB  r.   r   )
r   r2   r3   r4   r   r8   r   r   r  r0   )r:   rZ   r;   rl   s       r<   test_pie_dfzTestDataFramePlots.test_pie_df  sW    II!!!$++F3#+

 rww{{a0288RXX.r>   c                    t        t        j                  j                  d      j                  d      g dg d      }t	        |j
                  j                  dd      }t        |      t        |j                        k(  sJ |D ]"  }t        |j                  |j                         $ t        ||j                  d      D ]  \  }}|j                         d	k(  rJ  y )
Nr"   r=  r>  rB  r.   Tr@   r   r  )r   r2   r3   r4   r   r8   r   r   r/   r   r  r0   r   r(  )r:   r;   rJ   rl   ylabels        r<   test_pie_df_subplotsz'TestDataFramePlots.test_pie_df_subplots  s    II!!!$++F3#+

 !GGKK

 4yC

O+++ 	3Brxx2	3dBJJt< 	)JB==?b(((	)r>   c                    t        t        j                  j                  d      j                  d      g dg d      }g d}g d}t	        |j
                  j                  dd||	      }t        |      t        |j                        k(  sJ |D ]/  }t        |j                  |       t        |j                  |
       1 y )Nr"   r=  r>  rB  r.   r   )r  gr   r   mT)rA   rB   rk  rA  r.  )r   r2   r3   r4   r   r8   r   r   r/   r   r  r   r  )r:   r;   rk  
color_argsrJ   rl   s         r<   test_pie_df_labels_colorsz,TestDataFramePlots.test_pie_df_labels_colors  s    II!!!$++F3#+

 +.
 GGKK
 4yC

O+++ 	=Brxx0"**<	=r>   c                    t        t        j                  j                  d      j                  d            }t	        d      D ]!  }t        j
                  |j                  ||f<   # t        j                  j                  d      \  }}ddi}t        j                  d       5   |j                  j                  dd|dd| d d d        g d}t        |      D ]  \  }}t        |      }d	||<   |j                   D 	cg c]  }	|	j#                          }
}	|
|k(  sJ |j%                         j'                         D 	cg c]  }	|	j#                          }}	|d | ||d
z   d  z   }||k(  rJ  y # 1 sw Y   xY wc c}	w c c}	w )Nr"   )r%   r%   r%   )ncols	normalizeT)rB   rl   rM  )0123r  rD   r  )r   r2   r3   r4   r   r   ilocr   r   rB   r	  r
  r8   r   r  r6   r  r  r  r  )r:   r;   r  r   rJ   rn   base_expectedrl   r  rY   r   result_labelsexpected_labelss                r<   test_pie_df_nanz"TestDataFramePlots.test_pie_df_nan  st   ryy,,Q/66v>?q 	#AFFBGGAqDM	#**%%A%.4 t$''- 	GBGGKKF$tFvF	G -t_ 	4EArM*HHQK,.HH5qajjl5F5X%%%
 46==?3L3L3NOaQZZ\OMO+BQ/-A2HHO O333	4		G 	G 6 Ps   #!E0?E<?F0E9r   )r   r   r   c                 8   t        j                  d      t        j                  ddd      d}t        |      }t        j                  d      dz  t        j                  d      dz  d}t        |      }t	        |j
                  fd|i|}t        |dd	       y )
Nr  r   rM   rX   皙?皙?yerrr"   xerrr_  r2   r   r   r  r   r8   r   )r:   rn   rC  r;   d_errdf_errrl   s          r<   test_errorbar_plotz%TestDataFramePlots.test_errorbar_plot  s     ))B-biiAr&:;q\ggbkC'bggbkC.?@5! rww>V>v>Raa0r>   c                 B   t        j                  d      t        j                  ddd      d}t        |      }t        j                  d      dz  t        j                  d      dz  d}t        |      }t	        |dz   j
                  ||dd	
      }t        |dd       y )Nr  r   rM   rX   r]  r^  rD   r   T)r_  ra  rQ  r   r"   r`  rb  )r:   rC  r;   rc  rd  rl   s         r<   test_errorbar_plot_barz)TestDataFramePlots.test_errorbar_plot_bar  s    ))B-biiAr&:;q\ggbkC'bggbkC.?@5!!VMMV%T
 	Raa0r>   c                 f   t        j                  d      t        j                  ddd      d}t        |      }t        |d   j                  t        j
                  d      dz        }t        |dd	       t        |j                  t        j
                  d
      dz        }t        |dd	       y )Nr  r   rM   rX   rZ   r^  r_  rD   r`  )r"   r  r"   )r2   r   r   r   r8   r  r   r:   rC  r;   rl   s       r<   test_errorbar_plot_yerr_arrayz0TestDataFramePlots.test_errorbar_plot_yerr_array  s    ))B-biiAr&:;q\r#w||"''"+2CDRaa0rwwRWWW-=-CDRaa0r>   r_  u   誤差c                 B   t        j                  d      t        j                  ddd      d}t        |      }t        j                  d      dz  ||<   t	        |j
                  |      }t        |dd       t	        |j
                  d	d
|      }t        |dd       y )Nr  r   rM   rX   r]  ri  r"   r`  rZ   rY   )rZ   rY   r_  rD   rb  )r:   r_  rC  r;   rl   s        r<   test_errorbar_plot_column_namez1TestDataFramePlots.test_errorbar_plot_column_name  s~     ))B-biiAr&:;q\772;$4rwwT2Raa0rww#4@Raa0r>   c                 L   t        j                  d      t        j                  ddd      d}t        |      }t        j                  t
              5  |j                  t         j                  j                  d      j                  d             d d d        y # 1 sw Y   y xY w)Nr  r   rM   rX   r"   rd  ri  )
r2   r   r   r	  external_error_raisedr  r8   r3   r4   r5   r:   rC  r;   s      r<   &test_errorbar_plot_external_valueerrorz9TestDataFramePlots.test_errorbar_plot_external_valueerror  sy    ))B-biiAr&:;q\%%j1 	GGG..q1AA"EGF	G 	G 	Gs   ?BB#c                     t        j                  d      t        j                  ddd      d}t        |      }t        dgdz  dgdz  d      }t        j                  t
              5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr  r   rM   rX   zzzri  )r2   r   r   r	  ro  r  r8   )r:   rC  r;   rd  s       r<   %test_errorbar_plot_external_typeerrorz8TestDataFramePlots.test_errorbar_plot_external_typeerror  sv    ))B-biiAr&:;q\%2UGbLAB%%i0 	!GGG 	! 	! 	!s   (BB)ra   r   r  y_errr  r]  )r   r^  c                     t        t        j                  d      t        j                  ddd      d      }t        |j                  ||      }t        |dd       y )Nr  r   rM   rX   r_  rQ  r"   r`  r   r2   r   r   r8   r   )r:   rQ  ru  r;   rl   s        r<   !test_errorbar_plot_different_yerrz4TestDataFramePlots.test_errorbar_plot_different_yerr  sF     RYYr]2q"1EFGrwwU>Raa0r>   zy_err, x_err)r]  r]  c                     t        t        j                  d      t        j                  ddd      d      }t        |j                  |||      }t        |dd       y )Nr  r   rM   rX   )r_  ra  rQ  r"   r`  rx  )r:   rQ  ru  x_errr;   rl   s         r<   &test_errorbar_plot_different_yerr_xerrz9TestDataFramePlots.test_errorbar_plot_different_yerr_xerr  sH     RYYr]2q"1EFGrwwUTJRaa0r>   c                 6   t        t        j                  d      t        j                  ddd      d      }t        t        j                  d      dz  t        j                  d      dz  d      }t	        |j
                  d||d|      }t        |d	d	
       y )Nr  r   rM   rX   r]  r^  T)rA   r_  ra  rB   rQ  rD   r`  )r   r2   r   r  r   r8   r   )r:   rQ  r;   rd  rJ   s        r<   /test_errorbar_plot_different_yerr_xerr_subplotszBTestDataFramePlots.test_errorbar_plot_different_yerr_xerr_subplots1  s     RYYr]2q"1EFGs!2s9JKL GG
 	T2r>   zIterator is consumed)rU   r_   c           	          t        j                  d      t        j                  ddd      d}t        |      }t        |j                  t        j                  dt        |                  }t        |dd       y )	Nr  r   rM   rX   r  ri  r"   r`  )	r2   r   r   r   r8   	itertoolsrepeatr   r   rj  s       r<   test_errorbar_plot_iteratorz.TestDataFramePlots.test_errorbar_plot_iterator@  sY    ))B-biiAr&:;q\ rwwY-=-=c3r7-KLRaa0r>   c                    t        t        j                  t        j                  j	                  d      j                  d                  }t        t        j                  t        j                  j	                  d      j                  d                  }t        |j                  |      }t        |dd       t        |j                  dd      }t        |dd       y )Nr"   r  ri  r   r`  rD   )rZ   r_  	r   r2   absr3   r4   r5   r   r8   r   r:   r;   rd  rl   s       r<   'test_errorbar_with_integer_column_namesz:TestDataFramePlots.test_errorbar_with_integer_column_namesI  s    rvvbii33A6FFwOPQ266"))"7"7":"J"J7"STUrwwV4Raa0rww!!4Raa0r>   c                    t        t        j                  t        j                  j	                  d      j                  d                  }t        t        j                  t        j                  j	                  d      j                  d            ddg      }t        |j                  ||      }t        |dd       y )Nr"   rf   r  r   r   rw  r`  r  )r:   rQ  r;   rd  rl   s        r<   'test_errorbar_with_partial_columns_kindz:TestDataFramePlots.test_errorbar_with_partial_columns_kindR  s     rvvbii33A6FFwOPQFF299((+;;GDEPQSTv
 rwwV$?Raa0r>   c                    t        t        j                  t        j                  j	                  d      j                  d                  }t        t        j                  t        j                  j	                  d      j                  d            ddg      }t        ddd	      }|j                  |d
       |j                  |d
       t        |j                  |d      }t        |dd       y )Nr"   rf   r  r   r   1/1/2000r$   MEr+   T)inplacera   rw  r`  )r   r2   r  r3   r4   r5   r   r   r   r8   r   )r:   r;   rd  ixrl   s        r<   &test_errorbar_with_partial_columns_dtiz9TestDataFramePlots.test_errorbar_with_partial_columns_dti\  s    rvvbii33A6FFwOPQFF299((+;;GDEPQSTv
 
BT:
R&T*rwwV&ARaa0r>   err_boxc                     | S r  r  r   s    r<   <lambda>zTestDataFramePlots.<lambda>i  s    1 r>   c                 ,   t        j                  d      t        j                  ddd      d}t        |      } |t        j                  d      dz  t        j                  d      dz  d      }t	        |j
                  |      }t        |dd	
       y )Nr  r   rM   rX   r]  r^  )rY   r   ri  rD   r`  rb  )r:   r  rC  r;   errrl   s         r<   &test_errorbar_with_partial_columns_boxz9TestDataFramePlots.test_errorbar_with_partial_columns_boxh  sq     ))B-biiAr&:;q\BGGBK#-BGGBK#4EFGrwwS1Raa0r>   c                    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                  ||      }t        |dd       t        |j                  ||      }t        |dd       t        |j                  d|d   |      }t        |dd       t        |j                  dd|      }t        |dd       t        |j                  ||      }t        |dd       t        |j                  d||d      }t        |dd       y )Nr  r   rM   rX   r]  r^  r  z1/1/2001r  )r-   rg   rw  r"   r`  rZ   rY   )rZ   r_  rQ  rD   T)rA   rQ  r_  rB   )r2   r   r  r   r   r   r8   r   )	r:   rQ  rC  rc  r  tdftdf_errrl   rJ   s	            r<   test_errorbar_timeseriesz+TestDataFramePlots.test_errorbar_timeseriesq  s6   ))B-biiAr&:;ggbkC'bggbkC.?@ 
JT:$E,sxxgDARaa0sxxe$?Raa0sxx3WS\MRaa0sxx3StDRaa0sxxgDARaa0 HH
 	T2r>   c                    t         j                  j                  d      j                  d      }t        t        j                  d      j                  dd            j                  }|j                  ||dz        }|j                  d   j                         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                  |j                         d d d        y # 1 sw Y   y xY w)Nr"   )rW   r"   rp   rU  rW   rp   )r_  ra  rD   r   rM   zCAsymmetrical error bars should be provided with the shape (3, 2, 5)r[   ri  )r2   r3   r4   r   r   reshapeTr8   r  	get_pathsverticesr   r	  r  r  r  r^   r_   r  )r:   r  r;   rl   yerr_0_0expected_0_0rc   s          r<   test_errorbar_asymmetricalz-TestDataFramePlots.test_errorbar_asymmetrical  s   ii##A&--i8 ryy},,Q2355WW#C!GW,>>!$..03<<QTB1a7|bhhAw&77
x6iiQ
 ]]:S1 	 GGG	  	  	 s   D<<Ec                 $   t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }t        |j                  d       t        |j                  |       t        j                  d       5  |j                         }t        |j                        dk(  sJ t        j                  ||j                         t        |j                        dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	Nr"   rf   r$   rg   T)tabler   rD   )r   r2   r3   r4   r6   ri   rj   r   r8   r	  r
  r   tablesr   r  r  rk   s      r<   
test_tablezTestDataFramePlots.test_table  s    II!!!$++G4v++CR01
 	"''."'', ''- 	'Bryy>Q&&&NN2rtt$ryy>Q&&&		' 	' 	's   A%DDc                    t        t        j                  t        j                  j	                  d      j                  d            t        d      ddg      }t        t        j                  t        j                  j	                  d      j                  d            dz  t        d      ddg      }t        |j                  j                  dd      }t        |dd	       t        |j                  j                  dd|
      }t        |dd	       t        |j                  j                  dd|      }t        |dd	       t        |j                  j                  dd||      }t        |dd	       y )Nr"   )rp   r"   rp   rY   rZ   r%  rX   r   r`  )rY   rZ   ra  rD   )rY   rZ   r_  )rY   rZ   ra  r_  )r   r2   r  r3   r4   r5   r   r   r8   r   r   r  s       r<   test_errorbar_scatterz(TestDataFramePlots.test_errorbar_scatter  s   FF299((+;;FCD(#J

 FF299((+;;FCDqH(#J
 rww#=Raa0rww#6JRaa0rww#6JRaa0rww#6PVWRaa0r>   c                    dfd	}t        t        j                  t        j                  j	                  d      j                  d            g d      }|j                  j                  ddd	d
d      t        dd        |j                  dd        |j                  dd       |j                  j                  ddd
d      t        dd        |j                  dd       y )Nhas_xerrc           	      R   g }t        fdj                  D              }|D ]0  }t        |      r|j                  |        |j	                  |       2 |D cg c]  }|j
                  v s| }}t        |t        j                  |gt        |      z               y c c}w )Nc              3   R   K   | ]  }t        |d       s|j                     yw)FN)r   r  )r  r   has_errs     r<   r  z`TestDataFramePlots.test_errorbar_scatter_color.<locals>._check_errorbar_color.<locals>.<genexpr>  s      UA'!We:TUs   ''r'  )
nextr  r   extendappendr  r   r2   r   r   )	r  r  r  r  errselrY   	err_linesrl   s	     `     r<   _check_errorbar_colorzMTestDataFramePlots.test_errorbar_scatter_color.<locals>._check_errorbar_color  s    EUUUD %#LL$LL$	%
 %*AqQ"..-@AIA)(c)n9T0UV Bs   B$0B$r"   )r$   rp   rB  r   r   r   rC  rD  r-  )rY   rZ   ra  r_  r   rD   r`  )r  has_yerrr$  )rY   rZ   r_  r  r   )r  )
r   r2   r  r3   r4   r5   r8   r   r   r  )r:   r  r;   rl   s      @r<   test_errorbar_scatter_colorz.TestDataFramePlots.test_errorbar_scatter_color  s    		W FF299((+;;GDE-
 WW__sc#_GRaa0bmmUJGbmmUJGWW__sc7_CRaa0bmmWjIr>   c                     t        g ddd      }t        j                  t        t        fd      5  |j                  dddd	
       d d d        y # 1 sw Y   y xY w)Nr   r%   ri  z'unknown' is not ar[   r   r   unknownr   )rY   rZ   r,  rQ  )r   r^   r_   r  KeyErrorr8   r9   s     r<   test_scatter_unknown_colormapz0TestDataFramePlots.test_scatter_unknown_colormap  sR    YQ/0]]J19MN 	FGGcS99GE	F 	F 	Fs   AAc                    t               \  }}t        g dg dg dg dd      }d }|D ]  }|j                  ddd|d        |j                  t        j                                 ||       t        j                  d	       t               \  }}t        j                  t        d
      5  |j                  d|d      }d d d         ||       y # 1 sw Y   xY w)NrD   r"   rW   r%   rp   r   r   r   r   rC  c                    | D ]7  }t        |j                        dk(  sJ t        |j                         d       9 | d   | d   fD ]:  }t        |j	                         d       t        |j	                  d      d       < | d   | d   fD ]:  }t        |j	                         d       t        |j	                  d      d       < y )	NrD   Tr}   r   r"   Fr   rW   )r   r  r   r  r   rJ   rl   s     r<   _checkz5TestDataFramePlots.test_sharex_and_ax.<locals>._check  s     C288})))r113TBC AwQ( Nr113UCr111=uMN AwQ( Mr113TBr111=tLMr>   r   r   rv   T)rY   rZ   rv   rl   r  r  sharex and shareyr[   )rB   rl   r  
_generate_4_axes_via_gridspecr   r8   tight_layoutr  r  r  r	  r
  r  r:   gsrJ   r;   r  rl   s         r<   test_sharex_and_axz%TestDataFramePlots.test_sharex_and_ax  s     12D''''	
		M  	EBGGcSBtGD	E
	"t		%02D'';NO 	@77DT$7?D	@t	@ 	@s   .CCc                    t        g dg dg dg dd      }t               \  }}|D ]  }|j                  ddd|        |j                  t        j                                |D ]o  }t        |j                        dk(  sJ t        |j                         d	       t        |j                         d	       t        |j                  d
      d	       q y Nr  r  r   r   rv   )rY   rZ   rv   rl   rD   Tr}   r   r   r  r8   r  r  r  r   r  r   r  r   r:   r;   r  rJ   rl   s        r<   test_sharex_false_and_axz+TestDataFramePlots.test_sharex_false_and_ax  s     ''''	
 12D 	8BGGcSBG7	8 		" 	IBrxx=A%%%2--/>2--/>2--D-94H		Ir>   c                    t               \  }}t        g dg dg dg dd      }d }|D ]  }|j                  ddd|d        |j                  t        j                                 ||       t        j                  d	       t               \  }}t        j                  t        d
      5  |j                  d|d      }d d d        |j                  t        j                                 ||       y # 1 sw Y   5xY w)Nr  r  c                 ^   | D ]T  }t        |j                        dk(  sJ t        |j                         d       t        |j                  d      d       V | d   | d   fD ]  }t        |j	                         d        | d   | d   fD ]  }t        |j	                         d        y )	NrD   Tr}   r   r   r"   rW   F)r   r  r   r   r  r  s     r<   r  z5TestDataFramePlots.test_sharey_and_ax.<locals>._check6  s     M288})))r113TBr111=tLM AwQ( Cr113TBCAwQ( Dr113UCDr>   r   r   rv   T)rY   rZ   rv   rl   r  r  r  r[   )rB   rl   r  r  r  s         r<   test_sharey_and_axz%TestDataFramePlots.test_sharey_and_ax'  s     12D''''	
	D  	EBGGcSBtGD	E
	"t		%02D'';NO 	@77DT$7?D	@ 		"t		@ 	@s   .C77D c                    t        g dg dg dg dd      }t               \  }}|D ]  }|j                  ddd|        |j                  t        j                                |D ]o  }t        |j                        dk(  sJ t        |j                         d	       t        |j                         d	       t        |j                  d
      d	       q y r  r  r  s        r<   test_sharey_and_ax_tightz+TestDataFramePlots.test_sharey_and_ax_tightM  s    ''''	
 12D 	8BGGcSBG7	8 		" 	IBrxx=A%%%2--/>2--/>2--D-94H		Ir>   c           	      x   t        j                  d       i }|dv rt        t        j                  j                  d      j                  d      t        j                  j                  d      j                  d      t        j                  d      t        j                  j                  d      j                  d      z   d      }ddd	}n|d
k(  rmt        t        j                  j                  d      j                  d      t        t        d      t              t        ddd            j                         }n^t        t        j                  j                  d      j                  d      t        t        d      t              t        ddd            } |j                  dd|i|}|dv rwt        |j                         D ]^  \  }\  }}}|j"                  dd|f   }t%        j&                  ||      rJ t%        j(                  |j*                  |j*                         ` yt-        |d      rJ y)z3Check that every plot type gets properly collected.r  )r   r   r   r"   r  r  r  r   r*   rX   rE  r#   r&   r'   r)   r$   r+   r.   rQ  )ra   rE  N
_plot_datar  )r^   r  r   r2   r3   r4   r  r   r5   r   r6   r7   r   r  r8   r  r  rW  r	  shares_memoryrI  _valuesr  )	r:   rQ  argsr;   rl   r  cached_datar   sers	            r<   test_memory_leakz#TestDataFramePlots.test_memory_leakc  s    	G$//..q199r9B..q199r9B2)>)>q)A)I)Ir)I)RRB 3'DV^		%%a(88Ad6l&9 rD ce	  		%%a(88Ad6l&9 rDB RWW'$'$'##*3BMM*B N&&KAggadm++C===++CKK9L9LMN
 r<0000r>   c                 H	   t        t        j                  j                  d      j	                  d      t        dd            }t        t        j                  j                  d      j	                  d      |j                  t        d            }d	 }d
 } |        |       fD ]  \  }}|j                  |      }t        |j                        dk(  sJ |j                  |      }t        |j                        dk(  sJ ||fD ]U  }t        |j                         d       t        |j                         d       t        |j                  d      d       W t        j!                  d         |        |       fD ]  \  }}|j                  d||g      }t        |j                        dk(  sJ t        |j                        dk(  sJ |D ]U  }t        |j                         d       t        |j                         d       t        |j                  d      d       W t        j!                  d         |       \  }}t#        j$                  t&        d      5  |j                  d||gdd      }d d d        t        d   j                        dk(  sJ t        |d   j                        dk(  sJ ||fD ]  }t        |j                         d        t        |d   j                         d       t        |d   j                  d      d       t        |d   j                         d       t        |d   j                  d      d       t        j!                  d        |       \  }}t#        j$                  t&        d      5  |j                  d||gdd      }d d d        t        |d   j                        dk(  sJ t        |d   j                        dk(  sJ t        |d   j                         d       t        |d   j                         d       ||fD ]:  }t        |j                         d       t        |j                  d      d       < t        j!                  d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr"   r$   r  r,   rg   r  ABr%  c                      t         j                  j                  dd      } t        j	                         }|j                  | d dd d f         }|j                  | dd d f         }||fS )NrW   rD   r"   r   gridspecGridSpecr  r2  r  r  r  rY  rZ  s       r<   _get_vertical_gridzSTestDataFramePlots.test_df_gridspec_patterns_vert_horiz.<locals>._get_vertical_grid  s\    &&q!,B**,C//"RaRU),C//"QT(+C8Or>   c                      t         j                  j                  dd      } t        j	                         }|j                  | d d d df         }|j                  | d d df         }||fS )NrD   rW   r"   r  r  s       r<   _get_horizontal_gridzUTestDataFramePlots.test_df_gridspec_patterns_vert_horiz.<locals>._get_horizontal_grid  s\    &&q!,B**,C//"QU),C//"QT(+C8Or>   rl   rD   Tr}   r   r  r   r  r[   rB   rl   r  r  r   Fr
   r2   r3   r4   r5   r   r   r0   r6   r8   r   r  r   r  r   r  r  r	  r
  r  )	r:   tsr;   r  r  rY  rZ  rl   rJ   s	            r<   $test_df_gridspec_patterns_vert_horizz7TestDataFramePlots.test_df_gridspec_patterns_vert_horiz  s&   II!!!$44R8Z4

 II!!!$44W=((J
		 ,-/C/EF 		HC''S'/Csyy>Q&&&''S'/Csyy>Q&&&Cj Mr113TBr113TBr111=tLM IIe		 ,-/C/EF 	HC77Dc3Z78Dsyy>Q&&&syy>Q&&& Mr113TBr113TBr111=tLM IIe	 &'S'';NO 	S77Dc3ZT7RD	S47==!Q&&&47==!Q&&&* 	?B2--/>	? 	tAw..0%@tAw..T.:EJtAw..0$?tAw..T.:DI		% ()S'';NO 	S77Dc3ZT7RD	S47==!Q&&&47==!Q&&&tAw..0$?tAw..0%@* 	IB2--/>2--D-94H	I 			%7	S 	S 	S 	Ss   *RRRR!c                 <   t        t        j                  j                  d      j	                  d      t        dd            }d } |       }t        t        j                  j                  d      j	                  d      |j                  t        d      	      }|j                  d
|      }|D ]o  }t        |j                        dk(  sJ t        |j                         d
       t        |j                         d
       t        |j                  d
      d
       q t        j!                  d        |       }t#        j$                  t&        d      5  |j                  d
|d
d
      }d d d        |D ]  }t        |j                        dk(  rJ  |d   |d   fD ]  }t        |j                         d
        |d   |d   fD ]  }t        |j                         d        |d   |d   fD ]:  }t        |j                         d       t        |j                  d
      d       < |d   |d   fD ]:  }t        |j                         d
       t        |j                  d
      d
       < t        j!                  d       y # 1 sw Y   #xY w)Nr"   r$   r  r  rg   c                  2   t         j                  j                  dd      } t        j	                         }|j                  | d dd df         }|j                  | d ddf         }|j                  | dd df         }|j                  | d         }||||fS )NrW   r"   rN   r  )r  r  rY  rZ  ax3ax4s         r<   _get_boxed_gridzKTestDataFramePlots.test_df_gridspec_patterns_boxed.<locals>._get_boxed_grid  s    &&q!,B**,C//"RaR!V*-C//"RaRU),C//"QU),C//"T(+CS#%%r>   r#   r&   r%  Tr   rD   r}   r   r  r  r[   r  r   rW   Fr  )r:   r  r  rJ   r;   rl   s         r<   test_df_gridspec_patterns_boxedz2TestDataFramePlots.test_df_gridspec_patterns_boxed  so   II!!!$44R8Z4
	&  II!!!$44W=((L

 www. 	IBrxx=A%%%2--/>2--/>2--D-94H	I 			%  '';NO 	M77DT$t7LD	M 	&Brxx=A%%%	&7DG$ 	?B2--/>	?7DG$ 	@B2--/?	@7DG$ 	JB2--/?2--D-95I	J 7DG$ 	IB2--/>2--D-94H	I 			%	M 	Ms   JJc                 v    t        t        g dg dd      t        j                  j                  ddd       y )Nr   r  ri  r   r   rX   )kws)r   r   r   PlotAccessor_dataframe_kinds)r:   s    r<   test_df_grid_settingsz(TestDataFramePlots.test_df_grid_settings
	  s.    II67!!22$	
r>   c                     t         j                  j                         \  }}|j                  g d       t	        t
        j                  j                  d      j                  d            j                  |       y )N)r]  r]  r]  r]  r"   r$   r  )	r   r   rB   add_axesr
   r2   r3   r4   r8   )r:   r  rl   s      r<   test_plain_axesz"TestDataFramePlots.test_plain_axes	  sW     **%%'R)*ryy$$Q'..r2388B8?r>   c                 \   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      }t
        j                  j                         }|j                  d      }|j                  d|dddd	       y )
Nr"   r   ri  )r   r   rD   rD   r   r   r   hsv)rQ  rl   rY   rZ   r   r'  )
r   r2   r3   r4   r5   r   r   r2  r  r8   )r:   r;   r  rl   s       r<   test_plain_axes_dfz%TestDataFramePlots.test_plain_axes_df	  s     YY**1-==a@YY**1-==a@
 jj!\\,'
Y2sGr>   c                    t         j                  j                         \  }}ddlm}  ||      }|j                  ddd      }t        t        j                  j                  d      j                  d            j                  |	       t        t        j                  j                  d      j                  d            j                  |	       y )
Nr   )make_axes_locatabler;  z5%g?)r%  padr"   r$   r  )r   r   rB   mpl_toolkits.axes_grid1r  append_axesr
   r2   r3   r4   r8   )r:   r  rl   r  dividercaxs         r<   #test_plain_axes_make_axes_locatablez6TestDataFramePlots.test_plain_axes_make_axes_locatable&	  s    **%%'R?%b)!!'$!?ryy$$Q'..r2388B8?ryy$$Q'..r2388C8@r>   c                    t         j                  j                         \  }}ddlm}  ||ddd      }t        t        j                  j                  d      j                  d            j                  |	       t        t        j                  j                  d      j                  d            j                  |	       y )
Nr   )
inset_axesz30%r3  rW   )r  rn  r  r"   r$   r  )
r   r   rB   %mpl_toolkits.axes_grid1.inset_locatorr  r
   r2   r3   r4   r8   )r:   r  rl   r  iaxs        r<   test_plain_axes_make_inset_axesz2TestDataFramePlots.test_plain_axes_make_inset_axes0	  s    **%%'RD5!<ryy$$Q'..r2388B8?ryy$$Q'..r2388C8@r>   method)ra   r  r   c                 J   t        t        j                  j                  d      j	                  d      t        d            j                  d       j                  d       }d	}d
dg}||dd} t        |j                  |      di |}t        |j                  |       y )Nr"   )rU  r"   r  r   c                 6    | j                   j                         S r  )r*   r  r;   s    r<   r  zBTestDataFramePlots.test_secondary_axis_font_size.<locals>.<lambda>?	  s     r>   r   c                      | j                   dz  S )Ng?r  r
  s    r<   r  zBTestDataFramePlots.test_secondary_axis_font_size.<locals>.<lambda>@	  s     r>   )r   r  r   r   T)r}  r\  
mark_right)rJ   r_  r  )r   r2   r3   r4   r5   r6   assignr   r8   r   r  )r:   r  r;   r\  rO  rn   rl   s          r<   test_secondary_axis_font_sizez0TestDataFramePlots.test_secondary_axis_font_size8	  s     		%%a(88A4PT: V.V/V+V, 	 3Z!#N%WRWWf%//Ar>   c                 p   t        g dg dg dd      }|j                  j                  d      }|j                  dd       |j	                         D cg c]  }|j                          }}t        t        ||j                         d	
            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y c c}w )N)rW   r"   rW   )r  *      )MondayTuesday	Wednesday)salesvisitsr  r  r   rM   rW   Fr   r  r2  r  r3  r  r4  )	r   r8   rE  set_xlimr   r  r  r   r  )r:   r;   rl   txticklabelslabels_positions         r<   test_x_string_values_ticksz-TestDataFramePlots.test_x_string_values_ticksJ	  s     "&9
 WW\\E\"
B-/-?-?-ABqzz|BBs;NOx(C///y)S000{+s222 Cs   B3c                    t        j                  ddgddgg      }t        t        j                  j                  d      j                  d      ddg|      }|j                         }|j                  d	d
       |j                         D cg c]  }|j                          }}t        t        ||j                         d            }|d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ y c c}w )Nr  i  rD   r"   r  r   r*   r.   rM   r%   Fr   z	(2012, 1)r2  z	(2012, 2)r3  z	(2013, 1)r4  z	(2013, 2)r5  )r   from_productr   r2   r3   r4   r5   r8   r  r   r  r  r   r  )r:   r0   r;   rl   r  r  r  s          r<   test_x_multiindex_values_ticksz1TestDataFramePlots.test_x_multiindex_values_ticks]	  s     ''$1v(>?II!!!$44V<#J

 WWY
B-/-?-?-ABqzz|BBs;NO{+s222{+s222{+s222{+s222 Cs   C3c                     t        ddgddg      }|j                  |      }|j                         }|d   dk  sJ |d   dkD  sJ y )Nr"   r%   rD   rg   r  r   )r   r8   r7  )r:   rQ  r;   rl   xlimss        r<   test_xlim_plot_linez&TestDataFramePlots.test_xlim_plot_linep	  sS     1vaV,WW$WQx!||Qx!||r>   c                    t         j                  j                         \  }}g d}t        g dg dg dg dd|      }|g d   j                  j                  |d	
       |dg   j	                  |d       |j                         }|d   dk  sJ |d   dkD  sJ |j                         D cg c]  }|j                          }}||k(  sJ y c c}w )N)k1k2k3k4)i  r#    r#  )i  ix  r#  i  )r(  r(  i@  i  )rD   rW   r%   rW   )s1s2s3r}  rg   )r)  r*  r+  F)rl   rW  r}  T)rl   r}  r   rD   rW   )	r   r   rB   r   r8   r   r7  r   r  )r:   r  rl   indexesr;   r!  r  r  s           r<   0test_xlim_plot_line_correctly_in_mixed_plot_typezCTestDataFramePlots.test_xlim_plot_line_correctly_in_mixed_plot_typez	  s     **%%'R*.-.+	 
 	##''2u'=
M?  BD 9Qx!||Qx!|| .0-?-?-ABqzz|BBg%%% Cs   /Cc                 >   t        dgt              }|j                  sJ |j                         }t	        |j                               dk(  sJ |j                         d   }t	        |j                               dk(  sJ t	        |j                               dk(  sJ y )Nfoo)r/   r(   rD   r   )r   intemptyr8   r   r   r  rj  )r:   r;   rl   ra   s       r<   test_plot_no_rowsz$TestDataFramePlots.test_plot_no_rows	  s    wc2xxxWWY2<<>"a'''||~a 4>>#$)))4>>#$)))r>   c                     t        g d      }t        j                  t        d      5  |j	                          d d d        y # 1 sw Y   y xY w)Nr   r  r[   )r   r^   r_   r  r8   r9   s     r<   test_plot_no_numeric_dataz,TestDataFramePlots.test_plot_no_numeric_data	  s9    ']]9,EF 	GGI	 	 	s   AA)ra   r   r  r   r  r  rE  r   c                    t        j                  d       t        j                  d      t        j                  d      dz   t        j                  d      dz   t        j                  d      t        j                  d      d}t	        |      }|j                  ddg|      }t        |      dk(  sJ d	d
gddgdgf}t        ||d      D ]@  \  }}|dk7  rt        ||       |dk(  st        |j                        t        |      k(  r@J  y )Nr  r$   rD   rB  )r   rD  )r   rC  rB   rQ  rW   r   rD  r   rC  r   Tr   r   r  ra   )
r^   r  r2   r   r   r8   r   r   r   r  )r:   rQ  rC  r;   rJ   rZ  rl   rk  s           r<   test_group_subplotz%TestDataFramePlots.test_group_subplot	  s     	G$22"2"22
 q\wwZ 8twD4yA~~:SzC59dODA 	4JBu}$R7v~288}F333		4r>   c                     t        t        d            }d}t        j                  t        |      5  |j                  dg       d d d        y # 1 sw Y   y xY w)NrD   z!An iterable subplots for a Seriesr[   r   rB   )r
   r   r^   r_   NotImplementedErrorr8   )r:   r  rc   s      r<   (test_group_subplot_series_notimplementedz;TestDataFramePlots.test_group_subplot_series_notimplemented	  sI    U1X1]].c: 	(HHvhH'	( 	( 	(s   AAc                     t        t        j                  d      t        j                  ddg            }d}t        j                  t        |      5  |j                  dg       d d d        y # 1 sw Y   y xY w)Nr"   r  r  r   z6An iterable subplots for a DataFrame with a MultiIndexr[   r:  )	r   r2   eyer   r   r^   r_   r;  r8   rb   s      r<   ,test_group_subplot_multiindex_notimplementedz?TestDataFramePlots.test_group_subplot_multiindex_notimplemented	  s_    rvvay**@*@&&AQ*RSF]].c: 	'GGfXG&	' 	' 	's   A00A9c                     t        t        j                  d      ddg      }d}t        j                  t
        |      5  |j                  dg       d d d        y # 1 sw Y   y xY w)Nr"   r   r   z4An iterable subplots for a DataFrame with non-uniquer[   r9  r:  )r   r2   r>  r^   r_   r;  r8   rb   s      r<   0test_group_subplot_nonunique_cols_notimplementedzCTestDataFramePlots.test_group_subplot_nonunique_cols_notimplemented	  sS    rvvay3*5D]].c: 	'GGfXG&	' 	' 	's    AA&zsubplots, expected_msg)){   z(subplots should be a bool or an iterable)r   !each entry should be a list/tuple))rD   rC  )r9  rC  c                     t        j                  d      t        j                  d      d}t        |      }t        j                  t
        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr$   ri  r[   r:  r2   r   r   r^   r_   r  r8   )r:   rB   expected_msgrC  r;   s        r<   test_group_subplot_bad_inputz/TestDataFramePlots.test_group_subplot_bad_input	  sX     ))B-biim4q\]]:\: 	'GGXG&	' 	' 	's   A..A7c                    t        j                  d      t        j                  d      d}t        |      }t        t         j                        t        d      k  r8t        j                  t        d      5  |j                  dg       d d d        y t        j                  t        d      5  |j                  dg       d d d        y # 1 sw Y   y xY w# 1 sw Y   y xY w)	Nr$   ri  z2.0.0z Column label\(s\) \['bad_name'\]r[   )r   bad_namer:  z-Column label\(s\) \[np\.str\_\('bad_name'\)\])	r2   r   r   r   r~  r^   r_   r  r8   rp  s      r<   &test_group_subplot_invalid_column_namez9TestDataFramePlots.test_group_subplot_invalid_column_name	  s    ))B-biim4q\2>>"WW%55z1TU 6"3!456 6 "R 6 "3!456 66 66 6s   7C/CCC!c                     t        j                  d      t        j                  d      t        j                  d      d}t        |      }t        j                  t
        d      5  |j                  ddg       d d d        y # 1 sw Y   y xY w)Nr$   r   zshould be in only one subplotr[   ri  )r   r   r:  rE  rp  s      r<   $test_group_subplot_duplicated_columnz7TestDataFramePlots.test_group_subplot_duplicated_column	  sf    ))B-biim"))B-Hq\]]:-LM 	7GGj*5G6	7 	7 	7s   &BB)rh  r   r   c                     t        j                  d      t        j                  d      d}t        |      }t        j                  t
        d      5  |j                  dg|       d d d        y # 1 sw Y   y xY w)Nr$   ri  z1When subplots is an iterable, kind must be one ofr[   r6  rE  )r:   rQ  rC  r;   s       r<   test_group_subplot_invalid_kindz2TestDataFramePlots.test_group_subplot_invalid_kind	  s`    ))B-biim4q\]]Q
 	6 GGj\G5	6 	6 	6s   A00A9z index_name, old_label, new_label)Nr  new)oldrP  rO  )Nr  r  )Nr  rD   r  )ra   rE  r   c                 h   t        ddgddggddg      }||j                  _        |j                  |      }|j	                         |k(  sJ |j                         dk(  sJ |j                  |||	      }|j                         t        |      k(  sJ |j	                         t        |      k(  sJ y )
NrD   r"   rp   Type AType Br   r  r  )rQ  rI  xlabel)r   r0   r   r8   
get_xlabelr(  str)r:   rQ  
index_name	old_label	new_labelr;   rl   s          r<   (test_xlabel_ylabel_dataframe_single_plotz;TestDataFramePlots.test_xlabel_ylabel_dataframe_single_plot	  s     AA'(H1EF" WW$W}})+++}}"$$$ WW$yWC}}#i.000}}#i.000r>   zxlabel, ylabel))NN)X LabelN)NY Label)r[  r\  c                     d}d}t        ddgddgg||g      }|j                  |||||      }|j                         ||n|k(  sJ |j                         ||n|k(  sJ y )NrR  rS  rD   r"   rp   r   )rQ  rY   rZ   rT  rI  )r   r8   rU  r(  )r:   rQ  rT  rI  xcolycolr;   rl   s           r<   'test_xlabel_ylabel_dataframe_plane_plotz:TestDataFramePlots.test_xlabel_ylabel_dataframe_plane_plot
  sy     AA'$> WW$$$vfWM}}6>4vFFF}}6>4vFFFr>   )FTc                 4   t        dg      j                  |dddg      }|j                  j                  D ]_  }|j                  j                         s|j                         dk(  sJ |j                         dk(  sJ |j                         d   dk(  r_J  y )Nr   r@  )r   rr   r*  )r}  rI  rs   ro   )	r   r8   r2  rJ   r   get_visibler(  r  
get_yticks)r:   r}  ax_dfrl   s       r<   test_secondary_yz#TestDataFramePlots.test_secondary_y.
  s    1####Cht $ 
 ,,## 	0Bxx##%}}#---{{}000}}q)R///		0r>   c           	      h   t        t        j                  j                  d      j	                  d      t        t        d      t              t        ddd      	      }t        j                  d
      5  |j                         }|j                  j                         }d d d        y # 1 sw Y   y xY w)Nr"   r#   r&   r'   r)   r$   r*   r+   r.   F)r   r2   r3   r4   r5   r   r6   r7   r   r	  r
  r8   r  )r:   r;   r   s      r<   test_plot_no_warningz'TestDataFramePlots.test_plot_no_warning9
  s     II!!!$44W=$v,f5\2C@

 ''. 		A		A	 	 	s   4+B((B1r-   )r  7h60min120min3Mc                 :   t        j                  d|d      }t        t        j                  g d      |dg      }|j
                  |j                         }|j                         d   j                         t        fdt        d      D              sJ y )	Nz
01/01/2000r%   rg  )r   rD   r   rD   r   r%  r   c              3   X   K   | ]!  }t        |         t        |         k(   # y wr  )rV  )r  r  r  r   s     r<   r  zQTestDataFramePlots.test_plot_period_index_makes_no_right_shift.<locals>.<genexpr>S
  s'     H!3vay>S!%55Hs   '*)r   period_ranger   r2   r   r<  r8   r   r  r  r   )r:   r-   rf  r;   rl   r  r   s        @@r<   +test_plot_period_index_makes_no_right_shiftz>TestDataFramePlots.test_plot_period_index_makes_no_right_shiftF
  s|     oolqAHH\"E

 ::WWY",,.HuQxHHHHr>   c                 6   t        t        j                  j                  d      j                  d      ddg      }|j                  j                  dd      }t        |j                  j                         gd       t        |j                         d       y )	Nr"   r  r   r   r   rX   Tr}   )
r   r2   r3   r4   r8   r   r   r   r   r   rk   s      r<   #test_plot_display_xlabel_and_xticksz6TestDataFramePlots.test_plot_display_xlabel_and_xticksU
  so    ryy,,Q/66w?#sTWW^^cS^)**,-t<r))+T:r>   )NNNN)__name__
__module____qualname__r^   markslowr=   rK   rO   rT   xfailrd   rm   parametrizerz   r   r   r   r   r   r   r6   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r'  r2   r,  rk  r0  r   r   r>  r@  rF  rP  r[  r^  rb  re  r   r   rt  rz  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   CategoricalIndexr  r  r  r  r  r  r  paramtd
skip_if_nor  r  r   r)  r1  r9  r>  rC  rL  rS  rV  r`  re  rl  rs  rv  filterwarningsr   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   r  _common_kindsr  r	  r  r  r  r  r  r   r)  r,  r0  r3  stdr7  r;  rE  rG  rJ  rO  r[  re  rg  rk  rm  rq  rt  r
   r  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
_all_kindsr  r  r  r  r  r  r  r  r  r  r  r"  r-  r2  r4  r7  r<  r?  rA  rG  rJ  rL  rN  rZ  r`  re  rg  ro  rq  r  r>   r<   r    r    ?   s   [[/ / [[; ; [[; ; [[; ; [[45[[%  6% [[' ' [[[[z"z" +6!tfE		
- - [[+ +. [[1 1 [[' ' [[3 32 [[[[Xg7; 8 ; [[! ! [[']C%3Zc"3Zc"3Zc"3Zc"3Zc"3Zc"	
33 [[[[V%CD1 E 1 [[[[RLBKRLS#Jc,-Ss+,	

<
 <(
6'1
0	N [[!M3D#E//  [[],FG
> H
>	(
(N,'
  [[]RXXrzz,BC
A D
A [[s019MNsCc3<=Cc2663<	
	9	99
&2 [[Vff%56[[VaW-; . 7; [[Vff%56C 7C(  [[Vff%56H 7H [[a*[sAFGYY$ [[a*[sAFG
T
T [[a*[sAFG [[XY,>'?@H AH& [[X]D,A'BC2 D2
6 [[.  
 [[Yu6 7&	0 [[Yu6* 7*. [[*,BC [[Yu6
2 7
2 [[*,BC22.)
%"	" [[UUB,?,?$@A. B., [[Vj&%9:5 ;5#;25 [[V&7%@A5 B5 [[Ty9Q RS [[Vj&%9:[[Wy/&BC9 D ;
9 [[Yu6[[	.0UV
	 7

: [[V%IJ5 K5 [[Y)(DEA FA8&D.Y.
; [[[[u!t4		
1 1 [[' ' [[F F [[F F
6+6 [[ CD[[ GFO34  6	 E
6  [[ 56[[ GFO3<  &	 7
&$ [[ CD[[ GFO34  6	 E
62 [[],DE4 F4'D	;,/, 2
<=@ [[^fh-?@Q AQ6 U. [[ RYYxrxx8("((CS:TURYYxrxx8("((?:STRYYxrxx8("((CS:TU RYYBHHbffaAq!45xrxx@S7T RYYBHHaAq!45xrxx@R7S RYYBHHaArvvq!45xrxx@S7T
	
*j
+*j
X0 [[$#J		
55? [[	
77R. [[VX%:%:%H%HI! J! [[Vi%:;) <) [[VX%:%:%H%HI J [[D$x,,::;DVD. [[3Zc"US#Jc
+	
))< [[UZ3%$>? @ [[3%#(3*sCj5&/:A(+gx-@A	
99 [[^q!c3Z.@1a!Q.-QR- S-(;  [[Z$8
( 9
( [[L+&4fv&	
	7	7 [[S3(+/ ,/)"=*44 [[[[TN4(t	
1 1 [[1 1 [[1 1 [[[[Vfh%78	1 9 	1 [[G G [[! ! [[[[V%<=[[72772;$3/GBGGBK#-GBGGBK#4EFG	
1 > 1 [[[[V%<=[[ c 1c8IJKc 1c8IJK GBGGBK#%C0&s9JQT2UV	

1
 > 1
 [[[[V%<=3 > 3 [[4ZH1 I11 [[[[Vfe_51 6 1 [[	1 	1 [[[[Yi(@A1 B 1 [[V%<=3 >3B $'1,J4F#JI0$LI, [[VX%:%:%E%EF"1 G"1HN`0d
@HAA [[X'>?B @B"3&3& [[Vff%56 7&4*
 [[P44*('' [[ 	
''67 [[V%AB6 C6 [[*!21v	
	 [[V%<=1 >	1" [[	
 [[Vi%:;	G <	G [[]M:0 ;0 [[
 
 [[V%IJI KI;r>   r    c                     t         j                  j                  dd      } t        j	                  | d         }t        j	                  | d         }t        j	                  | d         }t        j	                  | d         }| ||||gfS )Nr"   r  )rD   r   r  r   )r   r  r  r  subplot)r  ax_tlax_llax_trax_lrs        r<   r  r  ^
  st    			q!	$BKK4!EKK4!EKK4!EKK4!EueU+++r>   )7__doc__r   r   r  r  ri   numpyr2   r^   pandas.util._test_decoratorsutil_test_decoratorsr{  pandas.core.dtypes.apir   pandasr   r   r   r   r	   r
   r   r   r   r   pandas._testing_testingr	  pandas.tests.plotting.commonr   r   r   r   r   r   r   r   r   r   r   r   r   pandas.util.versionr   pandas.io.formats.printingr   r  r   r  ru  r}  
pytestmarkr    r  r  r>   r<   <module>r     s    #  	    ) ) / 
 
 
     ( 3f,'f-. KKK KKL	
\(; \(;~P,r>   