
    Owgi                    d   d Z ddlmZmZ ddlZddlZddlZddlZddlZddlZ	ddl
Z
ddl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/m0Z0  e
jb                  d	      Z2 e
jb                  d
      Z3 G d d      Z4d Z5y)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.pyplotc                   &   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 ZFej                  j                  d_eGeHj                  g      d{        ZJej                  j                  d|d/d}g      d~        ZKd ZLd ZMd ZNej                  j                  d|ddg      d        ZOej                  j                  ddf ej                  d eQj                  d            g      ej                  j                  d|ddg      ej                  j                  dg dg dg      d                      ZSej                  j                  dddfg      ej                  j                  dg dg df      d               ZTej                  j                  d|g d      d        ZUej                  j                  dddg      d        ZVd ZWd ZXd ZYd ZZd 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        Z_d Z`d Zad Zbd Zcej                  j                  d      d        Zed Zfd Zgej                  j                  dg d      d        Zhd Zid Zjd Zkd Zld Zmd Znd Zod Zpd Zqd Zrej                  j                  dd e'j                  d      z  d e'j                  d      z  g      d        Zt	 	 	 	 dVdZue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˄        Zxd̄ Zyej                  j                  ddddddddg dѢddgg      d҄        Zzdӄ Z{ej                  j                  dg dբ      dք        Z|dׄ Z}ej                  j                  dVe~j                  j                         d؄        Zej                  j                  dVd-d0g      dل        Zej                  j                  dVe~j                  j                         dڄ        Zej                  j                  dV ee~j                  j                         dWgz         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        Zd Zej                  j                  d,ddg      d        Zd 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                  j^                        d+        Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Zej                  j                  d3g d4      d5        Zd6 Zd7 Zej                  j                  dVd(dWg      d8        Zd9 Zd: Zd; Zej                  j                  dVd<      d=        Zd> Zd? Zd@ Zej                  j                  dAg dB      dC        ZÐdD ZĐdE Zej                  j                  dVdF      dG        Zej                  j                  dHdIdJdKdLddMdYdgfg      ej                  j                  dVg dN      dO               Zej                  j                  dPg dQ      ej                  j                  dVd-d0g      dR               Zej                  j                  dhdS      dT        Zej                  j
                  dU        Zy(W  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     ]/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/plotting/frame/test_frame.py	test_plotzTestDataFramePlots.test_plot8   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_subplotsA   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_layoutL   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_index[   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_argk   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_propss   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                 0   t        t        j                  d d t        d            }t	        t
        j                  j                  d      j                  d      t        j                  |            }t        |j                  d      }t        |d       y )	Nr$   r"   rf   rg   Trh   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   sp    V))#2.b	: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_name(  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_xy1  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_cols?  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@g       @)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_titleK  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_logscalesY  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_logscalel  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_xcompaty  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;                 ?       @      @)r0  r/  r2  r1  rg   r/  r0  r2  g      @g      @g      @r1  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 )Nr.  )g     V@g     V@g     @W@g      W@)rZ   r   r   rZ   rX   r   )r   r8   r4  r   r2   r5  r6  r7  r8  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  \  }}||j                         d   z  }|j                         d   }t        j                  ||       F y )Nr   rD   )r2   zerosr   r6  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  sv    xxLO446q9:;,6 	2FBBKKM!$$Dq!B''b1	2r>   kindrB  multrD   rM   c                 ,   |t        t        j                  j                  d      j                  d      g d      z  }t	        |j
                  |d      }t	        |j
                  |d      }| j                  |j                  |j                         y )Nr"   r?  wrY   rZ   r   r   FrN  stackedTr   r2   r3   r4   r   r8   rM  r  )r:   rN  rO  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   rQ  FrS  TrU  )r:   rN  sep_dfrV  rW  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"   r?  r   rQ  r"  FrT  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"   r?  rQ  r   rD   T)rN  r   rT  )r   r2   r3   r4   r   r0   r   r8   )r:   rN  r;   df2s       r<   #test_line_area_stacked_positive_idxz6TestDataFramePlots.test_line_area_stacked_positive_idx*  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  rF  deletedatamask)	r:   rc  values1values2r;   rl   masked1masked2exps	            r<   test_line_area_nan_dfz(TestDataFramePlots.test_line_area_nan_df4  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   re  rg   rD   r"   r   rW   r'   rW   r   r"   rD   Tr]  r   )r2   r   r   r   rg  r   r8   r  rF  r  rf  )r:   rc  rk  rl  r;   	expected1	expected2rl   s           r<   test_line_area_nan_df_stackedz0TestDataFramePlots.test_line_area_nan_df_stackedI  s     a#bffa#W733?HH\<	HH\<	rww5
##BHHQK$9$9$;YG
##BHHQK$9$9$;Y=RSr>   rT  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   re  rg   rr  r'   rs  r   Fr]  )r2   r   r   r   rg  r   r8   rB  r  rF  r  rf  )	r:   rc  rn   rk  rl  r;   rt  ru  rl   s	            r<   "test_line_area_nan_df_stacked_areaz5TestDataFramePlots.test_line_area_nan_df_stacked_areaX  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   r4  r   r6  )r:   rn   r;   rl   r9  r:  r  s          r<   test_line_limz TestDataFramePlots.test_line_limo  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)ry  rB   rW   r|   rE   left_axright_axr   rM   )
r   r2   r3   r4   r8   r   hasattrr4  r   r6  )r:   r;   rJ   rl   r9  r:  r  s          r<   test_line_lim_subplotsz)TestDataFramePlots.test_line_lim_subplotsx  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.)strictrU   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"   r?  r@  r   r]  r   rM   )r   r2   r3   r4   r   r8   rB  r4  get_ylimr   r6  )
r:   rT  r;   neg_dfrl   r9  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)shareyrB  )rl   rN  )
r   r2   r3   r4   r   r   rB   r8   r   joined)r:   r;   figrV  rW  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   )rT  	linewidth)	r   r2   r3   r4   r5   r8   r   patchesget_linewidth)r:   rT  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  ?)rT  width)
r   r2   r3   r4   r5   r   r8   r  r   r/   )r:   methdimrT  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   )rT  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   )rT  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  )	r/  r/  r/        $@r/  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           	      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  rF  r   r4  r  r  )r:   rc  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"   r?  r   r@  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_scatter  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"   r?  r   r@  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"   r?  r   r@  r"  rY   rZ   r   T)rY   rZ   rN  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_shape6  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<   d	}t        j                  t        |
      5  |j                  ddd       d d d        y # 1 sw Y   y xY w)Nr"   r$   r   r   z
2014-01-01h)startr-   r,   dtimez9must be a string or a (real )?number, not 'datetime.time'r[   r   )rN  rY   rZ   )r   r2   r3   r4   r5   r   timer^   r_   r  r8   rb   s      r<   &test_raise_error_on_datetime_time_dataz9TestDataFramePlots.test_raise_error_on_datetime_time_data@  s|    ryy,,Q/??CcUS |#rJOO7I]]9C0 	6GGgG5	6 	6 	6s   3BB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_dataI  se     dAq!12CHyy$$Q'..q!SZ@56"''//Q!4r>   infer_stringpyarrow)marksre  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  re  rX   )r   r   r   r8   r   )r:   r  rY   rZ   r  r;   s         r<   test_scatterplot_object_dataz/TestDataFramePlots.test_scatterplot_object_dataR  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              sJ y c c}w )Ngffffff@g      @g@r2  g      @g	@g@g@lengthr  r   )r  r  r  r  r  )r  r  speciesr   rD   rY   rZ   r   )      ?g      ?g      @r.  c              3   ,   K   | ]  \  }}||k(    y wNr  ).0ijs      r<   	<genexpr>zKTestDataFramePlots.test_scatterplot_color_by_categorical.<locals>.<genexpr>{  s     Tda16Ts   )r   r   Categoricalr8   r   collectionscolorbarr2   r   	get_ticksr  rF  _boundariesrl   get_ymajorticklabelsget_textallr   )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^  s1    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Tc*<>R&STTTT 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   r?  lowhighsizer   r@  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   r?  r	  r   r@  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   )r0  r/  r/  r0  )r/  r0  r/  r0  r   r*   r  r   r/  r0  spring)rY   rZ   r   r  )	r   r2   r   r8   r   r  rF  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  rF  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   r(  	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"   r?  r   onetwothreerA  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$   r<  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   re  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   re  )yrot7      rA  )rI  rF  rE  )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  rF  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(   rB  r   rS   rI  )r8   rO  r   r   )r:   rQ  r;   seriesrJ   s        r<   test_boxplot_seriesz&TestDataFramePlots.test_boxplot_series  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   rO  rN  r/   r   r   r   r  rF  r   r  r   r  )r:   rQ  r;   r]  rl   rR  r   rS  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c                 P   |}|j                         j                  }|D cg c]  }t        |       }}|j                  j	                  ddd      }t        |ddd       t        |j                         |       t        |j                        dt        |      z  k(  sJ y c c}w )N2   r   F)rB  rC  vertr   rS   rI  rF  r   )
rN  r/   r   r8   rO  r   r   get_yticklabelsr   r  rP  s          r<   test_boxplot_verticalz(TestDataFramePlots.test_boxplot_vertical&  s    ++-55+78a,q/88 WW[[R!%[82AB1=2--/8288}C$5 5555 9s   B#zignore:Attempt:UserWarningc                    |}|j                         j                  }|D cg c]  }t        |       }}t        |j                  j
                  dddd      }t        |dd       t        |d       t        ||      D ]:  \  }}t        |j                         |g       t        |j                        d	k(  r:J  y c c}w )
NTF)rA   rB   ra  r   rW   )rD   rW   rE   r   r   r   )rN  r/   r   r   r8   rO  r   r   r   r   rc  r   r  )	r:   rQ  r;   rR  r   rS  rJ   rl   r   s	            r<   test_boxplot_vertical_subplotsz1TestDataFramePlots.test_boxplot_vertical_subplots1  s    ++-55+78a,q/88 GGKK
 	$6:U+T6* 	&IBr113eW=rxx=A%%%	& 9s   B>c                    |}|j                         j                  }|D cg c]  }t        |       }}t        j                  g d      }|j
                  j                  |d      }t        |j                         |       t        j                  |j                  j                         |       t        |j                        dt        |      z  k(  sJ y c c}w )N)rW   r"   r   F)r]  ra  r   )rN  r/   r   r2   r   r8   rO  r   rc  r  rF  r   r  r   r  )r:   rQ  r;   rR  r   rS  r]  rl   s           r<   test_boxplot_vertical_positionsz2TestDataFramePlots.test_boxplot_vertical_positionsC  s    ++-55+78a,q/88HHY'	WW[[95[92--/8
##BHH$9$9$;YG288}C$5 5555 9s   C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"   r?  r   r6  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   rO  rb   s      r<    test_boxplot_return_type_invalidz3TestDataFramePlots.test_boxplot_return_type_invalidM  s~    II!!!$44V<v++BQ/03

 C]]:S1 	2GGKKLK1	2 	2 	2s   4BB#rl  )dictrJ   bothc                     t        t        j                  j                  d      j	                  d      t        t        j                  d d       g d      }|j                  j                  |      }t        ||       y )Nr"   r?  r   r6  r"  rk  )r   r2   r3   r4   r5   r6   ri   rj   r8   rO  r   )r:   rl  r;   r   s       r<   %test_boxplot_return_type_invalid_typez8TestDataFramePlots.test_boxplot_return_type_invalid_typeW  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"   rr   r%   kderN  rS  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_dfa  sx    G$ryy,,Q/??IJ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 )	Nrs  r"   r#   ru  r  rp   )rN  rB  rC  rD  )	r^   rx  r   r2   r3   r4   r5   r8   r   rk   s      r<   test_kde_df_rotz"TestDataFramePlots.test_kde_df_roti  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 )
Nrs  r"   r#   Tru  )rA   rN  rB   r%   rC   rE   )
r^   rx  r   r2   r3   r4   r5   r   r8   r   rI   s      r<   test_kde_df_subplotsz'TestDataFramePlots.test_kde_df_subplotso  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 )	Nrs  r"   r#   ru  T)rN  r   rB   r   r   )	r^   rx  r   r2   r3   r4   r5   r8   r   rI   s      r<   test_kde_df_logyz#TestDataFramePlots.test_kde_df_logyz  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 )Nrs  r"   rt  r  r   r   ru  rv  )r^   rx  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"   rt  rw  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$   rW  rX  r   rY  )r
   r2   r3   r4   r8   r   r   )r:   rZ  rJ   s      r<   test_hist_df_seriesz&TestDataFramePlots.test_hist_df_series  sI    		--a077;<{{B'4bq1r>   c                 f   ddl m} t        t        j                  j                  d      j	                  d            }|j                  j                  ddd      }|j                         D cg c]  }t        ||      s| }}t        j                  |d   j                         d	       y c c}w )
Nr   	Rectangler"   r$   Tr%   )
cumulativebinsdensityrM   r0  matplotlib.patchesr  r
   r2   r3   r4   r8   r   get_childrenr  r  assert_almost_equalr  r:   r  rZ  rl   rY   rectss         r<   &test_hist_df_series_cumulative_densityz9TestDataFramePlots.test_hist_df_series_cumulative_density  s    0		--a077;<[[AtDOO-JqAy1IJJ
uRy335s; Ks   .B. B.c                 d   ddl m} t        t        j                  j                  d      j	                  d            }|j                  j                  dd      }|j                         D cg c]  }t        ||      s| }}t        j                  |d   j                         d	       y c c}w )
Nr   r  r"   r$   Tr%   )r  r  r  r  r  r  s         r<   test_hist_df_series_cumulativez1TestDataFramePlots.test_hist_df_series_cumulative  s    0		--a077;<[[A6OO-JqAy1IJJ
uRy335t< K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   
horizontal)rB  rC  orientationr   rb  )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>   weights皙?)rr   )shape)rr   r"   c           
         t        t        t        ddgt        j                  j                  d      j                  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 )	Nr   r*   r"   )r"   rr   r   )rN  r  rv  r  )r   rn  r   r2   r3   r4   r5   r   r8   r  r  r  r  )r:   r  r;   rV  rW  patchpatch_height_with_weightsexpected_patch_heights           r<   test_hist_weightsz$TestDataFramePlots.test_hist_weights  s     c3Z!6!6q!9!I!I(!STU
  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$1C)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  rF  )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>ri  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  rT  )      r   r<     )r  rT  rB   r   rD   r"   r  )r  r  )r  r  )r  rT  r  )r  rT  rB   r  )r   r8   r   r  r  r2   r   )r:   ri  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"   rt  Tr4  )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                    dd l m} |j                         }|j                          |j	                  d       t        t        j                  j                  d      j                  d            }|j                  |      }t        |j                         d t        |             D ]  \  }}|j                         ||   k(  rJ  y )Nr   o   r"   rf   )style)matplotlib.pyplotr   gcfclfadd_subplotr   r2   r3   r4   r5   r8   	enumerater   r   
get_marker)r:   r  pltr  r;   rl   rc  ra   s           r<   test_style_by_columnz'TestDataFramePlots.test_style_by_columnd  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_nonex  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C1rl  rn  r   r  )r   r2   r3   r4   r8   rO  	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   )r2  r1  r0  testr"  r   r'   z%Y-%m-%dr   )r   r   r2   r   r8   r  r  r  rF  r7   rf  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 Nrs  rY   r   rv  r^   rx  r   r8   r   r:   rN  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[   rv  )r   r6   r^   r_   r  r8   r:   rN  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[   rv  )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_kindrv  )	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  r(  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_integer  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_subplots  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:   r  r;   rl   s       r<   test_hexbin_with_cz%TestDataFramePlots.test_hexbin_with_c  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_cmap,  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_err?  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'  r+  r.   r   )
r   r2   r3   r4   r   r8   r   r   textsr0   )r:   rZ   r;   rl   s       r<   test_pie_dfzTestDataFramePlots.test_pie_dfI  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 ]  \  }}|j                         |k(  rJ  y )Nr"   r&  r'  r+  r.   Tr@   )r   r2   r3   r4   r   r8   r   r   r/   r   r0  r0   r   r  )r:   r;   rJ   rl   ylabels        r<   test_pie_df_subplotsz'TestDataFramePlots.test_pie_df_subplotsS  s    II!!!$++F3#+

 !GGKK

 4yC

O+++ 	3Brxx2	3dBJJ/ 	-JB==?f,,,	-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'  r+  r.   r   )r  gr   r   mT)rA   rB   rS  r(  r  )r   r2   r3   r4   r   r8   r   r   r/   r   r0  r   r  )r:   r;   rS  
color_argsrJ   rl   s         r<   test_pie_df_labels_colorsz,TestDataFramePlots.test_pie_df_labels_colorsd  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   r4  )0123r  rD   r  )r   r2   r3   r4   r   r   ilocr   r   rB   r  r  r8   r   r  r6   r0  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_nany  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"   xerrrI  r2   r   r   onesr   r8   r   )r:   rn   r,  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   rG  rH  rD   r   T)rI  rK  rN  r   r"   rJ  rL  )r:   r,  r;   rN  rO  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   rH  rI  rD   rJ  )r"   r  r"   )r2   r   r   r   r8   rM  r   r:   r,  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>   rI  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   rG  rT  r"   rJ  rZ   rY   )rZ   rY   rI  rD   rL  )r:   rI  r,  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"   rK  rT  )
r2   r   r   r  external_error_raisedr  r8   r3   r4   r5   r:   r,  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   zzzrT  )r2   r   r   r  rZ  r  r8   )r:   r,  r;   rO  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  rG  )r   rH  c                     t        t        j                  d      t        j                  ddd      d      }t        |j                  ||      }t        |dd       y )Nr  r   rM   rX   rI  rN  r"   rJ  r   r2   r   r   r8   r   )r:   rN  r`  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)rG  rG  c                     t        t        j                  d      t        j                  ddd      d      }t        |j                  |||      }t        |dd       y )Nr  r   rM   rX   )rI  rK  rN  r"   rJ  rc  )r:   rN  r`  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   rG  rH  T)rA   rI  rK  rB   rN  rD   rJ  )r   r2   r   rM  r   r8   r   )r:   rN  r;   rO  rJ   s        r<   /test_errorbar_plot_different_yerr_xerr_subplotszBTestDataFramePlots.test_errorbar_plot_different_yerr_xerr_subplots  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  rT  r"   rJ  )	r2   r   r   r   r8   	itertoolsrepeatr   r   rU  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  rT  r   rJ  rD   )rZ   rI  	r   r2   absr3   r4   r5   r   r8   r   r:   r;   rO  rl   s       r<   'test_errorbar_with_integer_column_namesz:TestDataFramePlots.test_errorbar_with_integer_column_names  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   rb  rJ  ro  )r:   rN  r;   rO  rl   s        r<   'test_errorbar_with_partial_columns_kindz:TestDataFramePlots.test_errorbar_with_partial_columns_kind  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   rb  rJ  )r   r2   rp  r3   r4   r5   r   r   r   r8   r   )r:   r;   rO  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>1  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   rG  rH  )rY   r   rT  rD   rJ  rL  )r:   r{  r,  r;   errrl   s         r<   &test_errorbar_with_partial_columns_boxz9TestDataFramePlots.test_errorbar_with_partial_columns_box0  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   rG  rH  rv  z1/1/2001rw  )r-   rg   rb  r"   rJ  rZ   rY   )rZ   rI  rN  rD   T)rA   rN  rI  rB   )r2   r   rM  r   r   r   r8   r   )	r:   rN  r,  rN  ry  tdftdf_errrl   rJ   s	            r<   test_errorbar_timeseriesz+TestDataFramePlots.test_errorbar_timeseries9  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   r<  rW   rp   )rI  rK  rD   r   rM   zCAsymmetrical error bars should be provided with the shape (3, 2, 5)r[   rT  )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_tablem  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   rJ  )rY   rZ   rK  rD   )rY   rZ   rI  )rY   rZ   rK  rI  )r   r2   rp  r3   r4   r5   r   r   r8   r   r   rq  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  )
next
containersr   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   r+  r   r   r   r,  r-  r  )rY   rZ   rK  rI  r   rD   rJ  )r  has_yerrr  )rY   rZ   rI  r  r   )r  )
r   r2   rp  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%   re  z'unknown' is not ar[   r   r   unknownr   )rY   rZ   r  rN  )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                    dd l m} |j                  d       t               \  }}t	        g dg dg dg dd      }d }|D ]  }|j                  ddd|d	
        |j                  |j                                 ||       |j                  d       t               \  }}t        j                  t              5  |j                  d	|d	      }d d d         ||       y # 1 sw Y   xY w)Nr   r  rD   r"   rW   r%   rp   r   r   r   r   r,  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   rc  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   sharex)rB   rl   r  )r  r   close_generate_4_axes_via_gridspecr   r8   tight_layoutr  r  r  r  r:   r  gsrJ   r;   r  rl   s          r<   test_sharex_and_axz%TestDataFramePlots.test_sharex_and_ax  s     	(		%02D''''	
		M  	EBGGcSBtGD	E
	"t		%02D''4 	@77DT$7?D	@t	@ 	@s   ;C!!C*c                    dd l m} t        g dg dg dg dd      }t               \  }}|D ]  }|j	                  ddd|        |j                  |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   r   rv   )rY   rZ   rv   rl   rD   Tr}   r   r  r   r   r  r8   r  r  r   r  r   rc  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                    dd l m} t               \  }}t        g dg dg dg dd      }d }|D ]  }|j	                  ddd|d	        |j                  |j                                 ||       |j                  d
       t               \  }}t        j                  t              5  |j	                  d|d      }d d d        |j                  |j                                 ||       y # 1 sw Y   1xY w)Nr   r  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   rc  r  s     r<   r  z5TestDataFramePlots.test_sharey_and_ax.<locals>._check  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  )rB   rl   r  )r  r   r  r   r8   r  r  r  r  r  r  r  s          r<   test_sharey_and_axz%TestDataFramePlots.test_sharey_and_ax  s     	(02D''''	
	D  	EBGGcSBtGD	E
	"t		%02D''4 	@77DT$7?D	@ 		"t		@ 	@s   *C//C8c                    dd l m} t        g dg dg dg dd      }t               \  }}|D ]  }|j	                  ddd|        |j                  |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_tight  s    '''''	
 12D 	8BGGcSBG7	8 		" 	IBrxx=A%%%2--/>2--/>2--D-94H		Ir>   c           	         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            }t        j                   |j                   dd|i|      }t"        j%                  d       t'        j(                           |       J y)z3Check that every plot type gets properly collected.rs  )r   r   r   r"   r  r  r  r   r*   rX   rB  r#   r&   r'   r)   r$   r+   r.   rN  r  Nr  )r^   rx  r   r2   r3   r4   r  r   r5   r   r6   r7   r   rp  weakrefrefr8   r  r  gccollect)r:   rN  argsr;   r  s        r<   test_memory_leakz#TestDataFramePlots.test_memory_leak4  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 kk'"''4t4t45 			%


u}}r>   c                 H	  	
 ddl m	 dd lm
 t	        t
        j                  j                  d      j                  d      t        dd            }t        t
        j                  j                  d      j                  d      |j                  t        d	      
      }	
fd}	
f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 
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 
j'                  d         |       \  }}t)        j*                  t,              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       
j'                  d        |       \  }}t)        j*                  t,              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       < 
j'                  d       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   gridspecr"   r$   rv  r,   rg   r  ABr"  c                      j                  dd      } j                         }|j                  | d dd d f         }|j                  | dd d f         }||fS )NrW   rD   r"   GridSpecr  r  r  r  rV  rW  r  r  s       r<   _get_vertical_gridzSTestDataFramePlots.test_df_gridspec_patterns_vert_horiz.<locals>._get_vertical_gridi  sY    ""1a(B**,C//"RaRU),C//"QT(+C8Or>   c                      j                  dd      } 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_gridp  sY    ""1a(B**,C//"QU),C//"QT(+C8Or>   rl   rD   Tr}   r   r  r   rB   rl   r  r  Fr   r  r  r   r
   r2   r3   r4   r5   r   r   r0   r6   r8   r   r  r   rc  r   r  r  r  r  )r:   tsr;   r  r  rV  rW  rl   rJ   r  r  s            @@r<   $test_df_gridspec_patterns_vert_horizz7TestDataFramePlots.test_df_gridspec_patterns_vert_horizY  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''4 	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''4 	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   4R"RRR!c                 J   ddl m dd lm t	        t
        j                  j                  d      j                  d      t        dd            }f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 j'                  d        |       }t)        j*                  t,              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       < j'                  d       y # 1 sw Y   xY w)Nr   r  r"   r$   rv  r  rg   c                     j                  dd      } 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  rV  rW  ax3ax4r  r  s         r<   _get_boxed_gridzKTestDataFramePlots.test_df_gridspec_patterns_boxed.<locals>._get_boxed_grid  s    ""1a(B**,C//"RaR!V*-C//"RaRU),C//"QU),C//"T(+CS#%%r>   r#   r&   r"  Tr   rD   r}   r   r  r  rW   Fr  )r:   r  r  rJ   r;   rl   r  r  s         @@r<   test_df_gridspec_patterns_boxedz2TestDataFramePlots.test_df_gridspec_patterns_boxed  ss   ''II!!!$44R8Z4
	&  II!!!$44W=((L

 www. 	IBrxx=A%%%2--/>2--/>2--D-94H	I 			%  ''4 	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  re  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)rG  rG  rG  rG  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   re  )r   r   rD   rD   r   r   r   hsv)rN  rl   rY   rZ   r   r  )
r   r2   r3   r4   r5   r   r   r  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%r0  rW   )r  rV  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_axes	  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"   )r<  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)ry  rC  
mark_right)rJ   rF  r  )r   r2   r3   r4   r5   r6   assignr   r8   r   r  )r:   r  r;   rC  rL  rn   rl   s          r<   test_secondary_axis_font_sizez0TestDataFramePlots.test_secondary_axis_font_size	  s     		%%a(88A4PT: V.V/V+V, 	 3Z!#N%WRWWf%//Ar>   c                 l   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
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visitsdayr  r   rM   rW   r  r/  r   r0  r  r1  )	r   r8   rB  set_xlimr   r  rn  r   
get_xticks)r:   r;   rl   txticklabelslabels_positions         r<   test_x_string_values_ticksz-TestDataFramePlots.test_x_string_values_ticks!	  s     "&9
 WW\\E\"
B-/-?-?-ABqzz|BBs;@Ax(C///y)S000{+s222 Cs   B1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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%   z	(2012, 1)r/  z	(2012, 2)r0  z	(2013, 1)r1  z	(2013, 2)r2  )r   from_productr   r2   r3   r4   r5   r8   r  r   r  rn  r   r  )r:   r0   r;   rl   r  r  r	  s          r<   test_x_multiindex_values_ticksz1TestDataFramePlots.test_x_multiindex_values_ticks4	  s     ''$1v(>?II!!!$44V<#J

 WWY
B-/-?-?-ABqzz|BBs;@A{+s222{+s222{+s222{+s222 Cs   C1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   rv  r   )r   r8   r4  )r:   rN  r;   rl   xlimss        r<   test_xlim_plot_linez&TestDataFramePlots.test_xlim_plot_lineG	  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s3ry  rg   )r  r  r  F)rl   rT  ry  T)rl   ry  r   rD   rW   )	r   r   rB   r   r8   r   r4  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_typeQ	  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  rf  )r:   r;   rl   ra   s       r<   test_plot_no_rowsz$TestDataFramePlots.test_plot_no_rowsk	  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_datau	  s9    ']]9,EF 	GGI	 	 	s   AA)ra   r   r  r   ru  r  rB  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k7  rt        ||       |dk(  st        |j                        t        |      k(  r@J  y )Nrs  r$   rD   r+  )r   r-  )r   r,  rB   rN  rW   r   r-  r   r,  r   r   rw  ra   )
r^   rx  r2   r   r   r8   r   r   r   r  )r:   rN  r,  r;   rJ   rD  rl   rS  s           r<   test_group_subplotz%TestDataFramePlots.test_group_subplotz	  s     	G$22"2"22
 q\wwZ 8twD4yA~~:SzC59dO4 	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:   serrc   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[   r'  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   r2  )r'  r2  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$   re  r[   r(  r2   r   r   r^   r_   r  r8   )r:   rB   expected_msgr,  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$   re  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   __version__r^   r_   r  r8   r[  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[   re  )r   r   r(  r4  r[  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)rO  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$   re  z1When subplots is an iterable, kind must be one ofr[   r$  r4  )r:   rN  r,  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)oldr@  r?  )Nr  r  )Nr  rD   r  )ra   rB  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   rv  r  )rN  r3  xlabel)r   r0   r   r8   
get_xlabelr  str)r:   rN  
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)rK  rL  c                     d}d}t        ddgddgg||g      }|j                  |||||      }|j                         ||n|k(  sJ |j                         ||n|k(  sJ y )NrB  rC  rD   r"   rp   r   )rN  rY   rZ   rD  r3  )r   r8   rE  r  )r:   rN  rD  r3  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'  )ry  r3  rs   ro   )	r   r8   r  rJ   r   get_visibler  r  
get_yticks)r:   ry  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_warning
  s     II!!!$44W=$v,f5\2C@

 ''. 		A		A	 	 	s   4+B((B1)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)  rg  r-  r   r   r;  r=  rC  rM  rX  r[  r_  rb  r   r   rp  rv  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r   r   CategoricalIndexr  r  r  r  r  r  paramtd
skip_if_nor  r  r  r  r  r   r%  r*  r3  r:  r=  rG  rL  rT  r[  r^  rd  filterwarningsrf  rh  rm  rq  ry  r{  r}  r  r  r  r  r  r  r  rM  r  r  rl  r   r  r  r  r  r  r  r   r  _common_kindsr  r  r  r  r  r  r  r	  r  r  r  r  stdr   r$  r.  r1  r4  r9  rE  rP  rR  rV  rX  r\  r_  r
   rd  rg  ri  r  rm  rr  rt  rz  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  r   r"  r%  r+  r.  r0  r6  r:  r<  r>  rJ  rP  rU  rW  r  r>   r<   r    r    7   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#;6 [[V&7%@A5 B5 [[Ty9Q RS [[Vj&%9:[[Wy/&BC9 D ;
9 [[Yu6[[	.0UVU	 7
U4 [[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	6 [[ <=& >&"62 [[],DE4 F4'D	;,/, 2
<=@ [[C'"''//wrwwX7N1NOQQ* 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 [[X**889VH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&PI4&PI0 [[VX%:%:%E%EF" G"HQf3j
@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 [[
 
r>   r    c                      dd l m}  t        j                  j	                  dd      }| j                  |d         }| j                  |d         }| j                  |d         }| j                  |d         }|||||gfS )Nr   r"   r  )rD   r   r  r   )r  r   r   r  r  subplot)r  r  ax_tlax_llax_trax_lrs         r<   r  r  
  sw    #			q!	$BKK4!EKK4!EKK4!EKK4!EueU+++r>   )6__doc__r   r   r  rk  r  ri   r  numpyr2   r^   pandas.util._test_decoratorsutil_test_decoratorsra  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   rx  r   r  r    r  r  r>   r<   <module>ry     s    % 
  	     ) ) / 
 
 
     ( 3f,'f-.d' d'NO	,r>   