
    Owg:q                         d Z ddlZddlZddlZddlmZ ddlmZ ddl	Z
ddl	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 ddlmZ  ej4                  d      Z ej4                  d	      Z G d
 d      Zy)z Test cases for DataFrame.plot     N)is_platform_linux)np_version_gte1p24)	DataFrameSeries
date_range)_check_axes_shape_check_box_return_type_check_legend_labels_check_ticks_props_check_visible_flatten_visible)pprint_thing
matplotlibzmatplotlib.pyplotc                   *	   e Zd Zej                  j
                  ej                  j                  dg d      d               Zej                  j
                  ej                  j                  dg d      d               Zej                  j
                  ej                  j                  dg d      d               Z	ej                  j                  dddg      d        Z
ej                  j                  dddg      d	        Zej                  j                  d
g d      d        Zd Zej                  j                  d      d        Zej                  j                  dddgddgddgddgddgddgg      d        Zd Zej                  j                  di dddfdd idd d fg      d!        Zej                  j
                  ej                  j                  d" ed#       ed$d#%      g      d&               Zd' Zd( Zej                  j                  dd)dgddgddgg      d*        Zd+ Zd, Zd- Zd. Zd/ Zd0 Zej                  j                  exr  e        d1d23      d4        Z!ej                  j                  exr  e        d1d23      d5        Z"d6 Z#ej                  j                  d7g d8      d9        Z$d: Z%d; Z&d< Z'd= Z(d> Z)ej                  j                  d?d@dAdBdCdDdEddFgfg      ej                  j                  dg dG      dH               Z*ej                  j                  dIdJdKdLdJdKdMdNdOdKdLdOdKdMdNdJd2dLdJd2dMdNdOd2dLdOd2dMdNdJdKdPdJdKdMdQdOdKdPdOdKdMdQdJdKdRdSdJdKdMdRdTdOdKdRdSdOdKdMdRdTdJd2dRdSdJd2dMdRdTdOd2dRdSdOd2dMdRdTdJdKdRdUdJdKdMdRdVdOdKdRdUdOdKdMdRdVg      dW        Z+ej                  j                  dIdJd2dLdJdKdLdOd2dLdOdKdLdJdKdPdOdKdPg      dX        Z,ej                  j                  dIdJd2dLdJdKdLdOd2dLdOdKdLdJdKdPdOdKdPg      dY        Z-ej                  j                  dZdd[g      d\        Z.ej                  j                  d]dJd^dKigdOd^d2igdOd^dKigdJd_dKigdOd_dKigg      d`        Z/	 	 	 	 	 	 dbdaZ0yD)cTestDataFramePlotsSubplotskind)barbarhlineareac                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }|j                  |ddd      }t        |dd	       |j                  d
k(  sJ t        ||j                        D ]  \  }}t        |t        |      g        |d d D ]  }t        |j                         t        |j!                         d       |dk7  rt        |j!                  d      d       t        |j                  j#                         d       t        |j%                                 t        |d   j                         t        |d   j!                                t        |d   j!                  d             t        |d   j                  j#                                t        |d   j%                                y )N   
      r   indexT)r   subplotssharexlegendr   r      axes_numlayoutr   labelsFvisibler   minor)r   nprandomdefault_rngliststringascii_lettersplotr   shapezipcolumnsr
   r   r   xaxisget_xticklabels	get_labelget_yticklabels)selfr   dfaxesaxcolumns         f/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/plotting/frame/test_frame_subplots.pytest_subplotsz(TestDataFramePlotsSubplots.test_subplots"   s    II!!!$++G4v++CR01

 wwD4TwJ$6:zzT!!!dBJJ/ 	DJB \&-A,BC	D s) 	1B288$2--/?u}r111=uM288--/?2--/0	1 	tBx~~&tBx//12tBx//d/;<tBx~~//12tBx//12    c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }|j                  |dd      }|D ]  }t        |j                         t        |j                                t        |j                  d             t        |j                  j                                t        |j                                 y )	Nr   r   r   r   TFr   r   r   r,   )r   r/   r0   r1   r2   r3   r4   r5   r   r9   r:   r;   r<   r=   r   r>   r?   r@   s        rB   test_subplots_no_share_xz3TestDataFramePlotsSubplots.test_subplots_no_share_x@   s     II!!!$++G4v++CR01
 wwD4w> 	1B288$2--/02--D-9:288--/02--/0	1rD   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }|j                  |dd      }|D ]  }|j                         J  y )Nr   r   r   r   TF)r   r   r    )	r   r/   r0   r1   r2   r3   r4   r5   
get_legendrG   s        rB   test_subplots_no_legendz2TestDataFramePlotsSubplots.test_subplots_no_legendO   sw     II!!!$++G4v++CR01
 wwD4w> 	+B==?***	+rD   r   r   c                 B   t        ddd      }t        t        j                  j	                  d      j                  d      |      }|j                  |dd	      }t        |d
d       |d d D ]  }t        |j                         t        |j                         d       t        |j                  d      d       t        |j                  j                         d       t        |j                                 t        |d   j                         t        |d   j                                t        |d   j                  d             t        |d   j                  j                                t        |d   j                                t        |d       y )N
2014-07-01MEr   startfreqperiodsr   r   r   TrF   r   r!   r#   r)   Fr*   r,   r.   r   )xrot)r   r   r/   r0   r1   r5   r   r   r9   r:   r;   r<   r   r=   r   idxr>   r?   r@   s         rB   test_subplots_timeseriesz3TestDataFramePlotsSubplots.test_subplots_timeseriesZ   sC   |$Cryy,,Q/66w?sKwwD4w=$6:s) 	1B288$2--/?2--D-95I288--/?2--/0	1 	tBx~~&tBx//12tBx//d/;<tBx~~//12tBx//124a(rD   c                    t        ddd      }t        t        j                  j	                  d      j                  d      |      }|j                  |dd	d
d      }|D ]  }t        |j                         t        |j                                t        |j                  d             t        |j                  j                                t        |j                                t        |dd
d        y )NrM   rN   r   rO   r   r   r   TF-      )r   r   r   rotfontsizer,   )
xlabelsizerS   
ylabelsize)r   r   r/   r0   r1   r5   r   r9   r:   r;   r<   r   rT   s         rB   test_subplots_timeseries_rotz7TestDataFramePlotsSubplots.test_subplots_timeseries_rotq   s    |$Cryy,,Q/66w?sKwwD42PQwR 	HB288$2--/02--D-9:288--/02--/0rabQG	HrD   col)numeric	timedeltadatetime_no_tzdatetime_all_tzc           	         t        j                  g d      t        j                  dd      t        j                  dd      t        j                  dd      gt        j                  d      t        j                  d	      t        j                  d
      gt        j                  dd      t        j                  d	d      t        j                  d
d      gg dd}t        |      }|j                  |      }|j                         d   j                         d   }||   j                  }||k(  j                         sJ y )Nr"   r      is)unitr   mh2017-08-01 00:00:002017-08-01 02:00:002017-08-02 00:00:00TutcThisshouldfail)r`   ra   rb   rc   textyr   r"   )r/   arraypd	Timedeltato_datetimer   r5   	get_linesget_datavaluesall)r=   r_   datatestdatar@   resultexpecteds          rB   test_subplots_timeseries_y_axisz:TestDataFramePlotsSubplots.test_subplots_timeseries_y_axis~   s    xx	*Ss+Rc*Rc* 454545 4$?4$?4$? 
 /#
& T?]]S]!"++-a0C=''("'')))rD   c                     t        j                  g d      g dd}t        |      }d}t        j                  t
        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nre   rp   )r`   rt   zno numeric data to plotmatchrt   ru   )r/   rw   r   pytestraises	TypeErrorr5   )r=   r   r   msgs       rB   %test_subplots_timeseries_y_text_errorz@TestDataFramePlotsSubplots.test_subplots_timeseries_y_text_error   s[     xx	*.
 T?']]9C0 	$MMFM#	$ 	$ 	$s   A!!A*z6not support for period, categorical, datetime_mixed_tz)reasonc                    t        j                  g d      t        j                  dd      t        j                  dd      t        j                  dd      gt        j                  g dg dd	
      t        j
                  dd      t        j
                  d      t        j
                  d      gd}t        |      }|j                  dd      }|j                         d   j                         d   |d   j                  k(  j                         sJ |j                  dd      }|j                         d   j                         d   |d   j                  k(  j                         sJ |j                  dd      }|j                         d   j                         d   |d   j                  k(  j                         sJ y)a  
        This test will fail for:
            period:
                since period isn't yet implemented in ``select_dtypes``
                and because it will need a custom value converter +
                tick formatter (as was done for x-axis plots)

            categorical:
                 because it will need a custom value converter +
                 tick formatter (also doesn't work for x-axis, as of now)

            datetime_mixed_tz:
                because of the way how pandas handles ``Series`` of
                ``datetime`` objects with different timezone,
                generally converting ``datetime`` objects in a tz-aware
                form could help with this problem
        re   rk   H)rQ   z2017-08-01 02:00rm   )cba)r   r   r   F)
categoriesorderedTrn   rl   )r`   periodcategoricaldatetime_mixed_tzr`   r   )xrv   r   r"   r   r   N)r/   rw   rx   PeriodCategoricalrz   r   r5   r{   r|   r}   r~   )r=   r   r   	ax_periodax_categoricalax_datetime_mixed_tzs         rB   -test_subplots_timeseries_y_axis_not_supportedzHTestDataFramePlotsSubplots.test_subplots_timeseries_y_axis_not_supported   s   ( xx	*		/c:		,37		/c:
 >>OU 4$?4545"
  T?MMIM:	!!$--/2hx6H6O6OO
#% 	  "mD$$&q)224Q7&--.
#% 	   (}}y<O}P **,Q/88:1=+,334
#% 	 rD   zlayout, exp_layout)r   r   )r.   r   )r   r.   )r"      )r.   r   )r   r.   )r   r"   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }|j                  d|      }t        |d|       |j                  |k(  sJ y )	Nr   r   r   r   Tr   r%   r   r#   
r   r/   r0   r1   r2   r3   r4   r5   r   r6   )r=   r%   
exp_layoutr>   r?   s        rB   !test_subplots_layout_multi_columnz<TestDataFramePlotsSubplots.test_subplots_layout_multi_column   sr     II!!!$++G4v++CR01

 wwVw4$:>zzZ'''rD   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }d}t        j                  t        |      5  |j                  dd	       d d d        d
}t        j                  t        |      5  |j                  dd	       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nr   r   r   r   z1Layout of 1x1 must be larger than required size 3r   Tr"   r"   r   z1At least one dimension of layout must be positive)r.   r.   )r   r/   r0   r1   r2   r3   r4   r   r   
ValueErrorr5   )r=   r>   r   s      rB   'test_subplots_layout_multi_column_errorzBTestDataFramePlotsSubplots.test_subplots_layout_multi_column_error   s    II!!!$++G4v++CR01
 B]]:S1 	2GGT&G1	2 B]]:S1 	4GGT(G3	4 	4		2 	2	4 	4s   1C*CCCz:kwargs, expected_axes_num, expected_layout, expected_shaper"   r   r"   r%   )r   r   c                    t        t        j                  j                  d      j                  d      t	        t
        j                  d d             } |j                  dddi|}t        |||       |j                  |k(  sJ y )	Nr   r   r"   r   r   r   Tr#    r   )r=   kwargsexpected_axes_numexpected_layoutexpected_shaper>   r?   s          rB   "test_subplots_layout_single_columnz=TestDataFramePlotsSubplots.test_subplots_layout_single_column   s     II!!!$++G4v++CR01
 rww///&"	

 zz^+++rD   rU   rf   1/1/2000rR   c                     t        j                  d       5  t        t        j                  j                  d      j                  d      |      }|j                  dd       d d d        y # 1 sw Y   y xY w)Nr   )rf   r   r   T)r   r   r   )tmassert_produces_warningr   r/   r0   r1   standard_normalr5   )r=   rU   r>   s      rB   test_subplots_warningsz1TestDataFramePlotsSubplots.test_subplots_warnings  s^     ''- 	2299003CCFKSVWBGGT&G1	2 	2 	2s   AA,,A5c                 4   t         j                  j                  dd      \  }}t        t        j
                  j                  d      j                  d      t        t        j                  d d             }|j                  d|d   dd	      }t        |dd
       |j                  dk(  sJ |d   j                  |u sJ |j                  d|d   dd	      }t        |dd
       |j                  dk(  sJ |d   j                  |u sJ t        |dd       y )Nr   r   r   r   r   Tr   Fr   r@   r   sharey)r"   r   r#   r&   r"      )r   r   )mplpyplotr   r   r/   r0   r1   r2   r3   r4   r5   r   r6   figure)r=   figr?   r>   returneds        rB   test_subplots_multiple_axesz6TestDataFramePlotsSubplots.test_subplots_multiple_axes  s   JJ''1-	TII!!!$++G4v++CR01

 77DT!WU57Q(Qv>~~%%%{!!S(((77DT!WU57Q(Qv>~~%%%{!!S((($6:rD   c                 z   t        t        j                  j                  d      j                  d      t	        t
        j                  d d             }d}t        j                  j                  dd      \  }}t        j                  t        |      5  |j                  d|	       d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   z@The number of passed axes must be 3, the same as the output plotr   r   Tr   r@   )r   r/   r0   r1   r2   r3   r4   r   r   r   r   r   r   r5   )r=   r>   r   _r?   s        rB   !test_subplots_multiple_axes_errorz<TestDataFramePlotsSubplots.test_subplots_multiple_axes_error2  s    II!!!$++G4v++CR01
 Q**%%a+4]]:S1 	,GGTdG+	, 	, 	,s   B11B:)r   r"   c                    t         j                  j                  dd      \  }}t        t        j
                  j                  d      j                  d      t        t        j                  d d             }t        j                  t              5  |j                  d||dd      }t        |d|	       |j                  d
k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   )r   r   r   r   TF)r   r@   r%   r   r   r   r#   )r   )r   r   r   r   r/   r0   r1   r2   r3   r4   r   r   UserWarningr5   r   r6   )r=   r%   r   r   r?   r>   r   s          rB   !test_subplots_multiple_axes_2_dimz<TestDataFramePlotsSubplots.test_subplots_multiple_axes_2_dim?  s     **%%a+4II!!!$++G4v++CR01
 ''4 	*ww$veE  H h:F>>T)))	* 	* 	*s   6CCc                 Z   t         j                  j                  dd      \  }}t        t        j
                  j                  d      j                  d      t        t        j                  d d             }|j                  d|gdd      }t        |dd	
       |j                  dk(  sJ y )Nr"   r   r   r   r   TFr   r   r#   r   )r   r   r   r   r/   r0   r1   r2   r3   r4   r5   r   r6   )r=   r   r?   r>   s       rB   &test_subplots_multiple_axes_single_colzATestDataFramePlotsSubplots.test_subplots_multiple_axes_single_colY  s     **%%a+4II!!!$++G4v++CR01

 ww$ewL$6:zzT!!!rD   c                    t         j                  j                  dddd      \  }}t         j                  j                  dddd       t	        t
        j                  j                  d      j                  d	      t        d
dd            }t        |j                               D ]  \  }}||   j                  |d        |dd j                         D ]  }t        |j                         d        |d   j                         D ]  }t        |j                         d        |g ddgf   j                         D ]  }t        |j                         d        |g ddgf   j                         D ]  }t        |j                         d        |g ddgf   j                         D ]  }t        |j                         d        y )Nr   T)r   r   g?gffffff?g333333?)leftrighthspacewspacer   )r   	   rM   rN   r   rO   r   rf   )r@   r[   r   r.   Fr*   )r   r"   r   r"   )r   r   r   subplots_adjustr   r/   r0   r1   r   r   	enumerateravelr5   r   r:   r<   )r=   r   r?   r>   ir@   s         rB   test_subplots_ts_share_axesz6TestDataFramePlotsSubplots.test_subplots_ts_share_axesf  s   **%%a4%E4

""DS"QII!!!$44W=<dBG
 tzz|, 	*EArqEJJ"qJ)	* q*""$ 	@B2--/?	@ r(.." 	?B2--/>	? y1#~&,,. 	?B2--/>	? y1#~&,,. 	@B2--/?	@y1#~&,,. 	@B2--/?	@rD   c                    g dg dg dd}t        |t        dd            }|dd	g   j                  d
      }|d   j                  |d   d
       t        |d   j	                         d       t        |d   j	                         d
       |j                         D ]  }t        |j                         d
        y )N)      ?       @      @      @)r   r   r   r   )rf   r"   r   r   )ABCz
2014 10 11z
2014 10 14r   r   r   Tr   r   r   )r@   secondary_yFr*   r"   )r   r   r5   r   r:   r   r<   )r=   dr>   r?   r@   s        rB   'test_subplots_sharex_axes_existing_axeszBTestDataFramePlotsSubplots.test_subplots_sharex_axes_existing_axes  s    &-AUq
< FG3*~""D"1
3QT2tAw..0%@tAw..0$?**, 	?B2--/>	?rD   c                 
   t        t        j                  j                  d      j                  d      t	        d            }|j                  d      }|D ]*  }t        |dg       t        |j                        d	k(  r*J  y )
Nr   rf   rf   aaaaar8   Tr   r   r'   r"   	r   r/   r0   r1   r2   r5   r
   lenlinesr=   r>   r?   r@   s       rB   test_subplots_dup_columnsz4TestDataFramePlotsSubplots.test_subplots_dup_columns  sm    ryy,,Q/66v>WVwww% 	&B SE2rxx=A%%%	&rD   c                    t        t        j                  j                  d      j                  d      t	        d            }|j                  dd      }|D ]*  }t        |dg       t        |j                        d	k(  r*J  y )
Nr   r   r   r   Tr   )r   r   r'   r"   r   r   s       rB   %test_subplots_dup_columns_secondary_yz@TestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_y  so    ryy,,Q/66v>WVww#w6 	&B SE2rxx=A%%%	&rD   c                 J   t        t        j                  j                  d      j                  d      t	        d            }|j                  d      }t        |dgdz  	       t        |j                        d
k(  sJ t        |j                  j                        dk(  sJ y )Nr   r   r   r   r   )r   z	a (right)rf   r'   r   )
r   r/   r0   r1   r2   r5   r
   r   r   right_ax)r=   r>   r@   s      rB   0test_subplots_dup_columns_secondary_y_no_subplotzKTestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_y_no_subplot  s    ryy,,Q/66v>WVWWW%R(9:288}!!!2;;$$%***rD   zWeird rounding problemsF)r   strictc           	      (   t        j                  g d      }t        dgdz  t        t	        dd            dt	        d            }|j
                  j                  dd	      }t        j                  |j                  j                         |       y )
N)皙?r         $@d   r   rf   r"   r   r   r   r   T)gridlog)r/   rw   r   r2   ranger5   r   r   assert_numpy_array_equalyaxisget_ticklocs)r=   r   r>   r@   s       rB   test_bar_log_no_subplotsz3TestDataFramePlotsSubplots.test_bar_log_no_subplots  sn     8812 aS1W4a+<=U1XNWW[[d[-
##BHH$9$9$;XFrD   c                 r   t        j                  g d      }t        t        ddg      t        ddg      g      j                  j                  dd      }t        j                  |d   j                  j                         |       t        j                  |d   j                  j                         |       y )	N)r   r   r   g      Y@g     @@g     @   i,  i  T)r   r   r   r"   )
r/   rw   r   r   r5   r   r   r   r   r   )r=   r   r@   s      rB   test_bar_log_subplotsz0TestDataFramePlotsSubplots.test_bar_log_subplots  s     88@ASz*FC:,>?@EEIIt J 
 	##BqEKK$<$<$>I
##BqEKK$<$<$>IrD   c                     |}|j                   j                  d      }t        |t              sJ t	        |d g d       y )NTr   heightweightcategory)expected_keys)r5   box
isinstancer   r	   )r=   hist_dfr>   r   s       rB   )test_boxplot_subplots_return_type_defaultzDTestDataFramePlotsSubplots.test_boxplot_subplots_return_type_default  s=     d+&&)))D(H	
rD   rt)dictr?   bothc                 d    |}|j                   j                  |d      }t        ||g dd       y )NT)return_typer   r  F)r  check_ax_title)r5   r  r	   )r=   r  r
  r>   r   s        rB   !test_boxplot_subplots_return_typez<TestDataFramePlotsSubplots.test_boxplot_subplots_return_type  s1    77;;2;=: 		
rD   c                 l   t        t        j                  j                  d      j	                  d      t        dd      t        d            }t        j                  ddd	
      \  }}|j                  d	|      }|D ]7  }t        |j                        dk(  sJ t        |j                         d	       9 t        |d   j                         d       t        |d   j                  d	      d       t        |d   j                         d	       t        |d   j                  d	      d	       y )Nr   r   r   r   r   r   ABr   r8   r"   T)r   r   r*   r   Fr,   r   r/   r0   r1   r   r   r2   pltr   r5   r   r   r   r<   r:   r=   r>   r   r?   r@   s        rB   $test_df_subplots_patterns_minorticksz?TestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks  s   II!!!$44W=Z4J
 ,,q!D,14www. 	?Brxx=A%%%2--/>	? 	tAw..0%@tAw..T.:EJtAw..0$?tAw..T.:DIrD   c                    t        t        j                  j                  d      j	                  d      t        dd      t        d            }t        j                  dd      \  }}t        j                  t              5  |j                  d	|d	
      }d d d        |D ]7  }t        |j                        dk(  sJ t        |j!                         d	       9 t        |d   j#                         d       t        |d   j#                  d	      d       t        |d   j#                         d	       t        |d   j#                  d	      d	       y # 1 sw Y   xY w)Nr   r  r   r   r   r  r  r"   T)r   r@   r   r*   r   Fr,   )r   r/   r0   r1   r   r   r2   r  r   r   r   r   r5   r   r   r   r<   r:   r  s        rB   2test_df_subplots_patterns_minorticks_1st_ax_hiddenzMTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_1st_ax_hidden  s+   II!!!$44W=Z4J

 ,,q!$4''4 	@77DT$7?D	@ 	?Brxx=A%%%2--/>	? 	tAw..0%@tAw..T.:EJtAw..0$?tAw..T.:DI	@ 	@s   EE c                    t        t        j                  j                  d      j	                  d      t        dd      t        d            }t        j                  dd      \  }}|j                  d	|
      }|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   r  r  r"   Tr   r*   r,   r  r  s        rB   /test_df_subplots_patterns_minorticks_not_sharedzJTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_not_shared  s    II!!!$44W=Z4J
 ,,q!$4www. 	IBrxx=A%%%2--/>2--/>2--D-94H		IrD   c                 p   t        t        j                  j                  d      j                  d            }t        j                  |j
                  dd df<   t        j                  |j
                  d ddf<   t        j                  j                  dd      \  }}|j                  j                  |dd       t        j                  d	d
d      }t        j                  ddd      }t        j                  |d   j                         |       t        j                  |d   j                         |       y )Nr   r  rf   r"   r   TF)r@   r   r   g      @r         ?      )r   r/   r0   r1   nanilocr   r   r   r5   r   aranger   r   
get_xticks)r=   r>   r   axsexpected_ax1expected_ax2s         rB   test_subplots_sharex_falsez5TestDataFramePlotsSubplots.test_subplots_sharex_false  s     ryy,,Q/66w?@AA$$Q*3
d59yyb#.yyq#.
##CF$5$5$7F
##CF$5$5$7FrD   c                 <   t        dd      }t        t        j                  j	                  d      j                  d      |      }i }t        t        j                  j                  d      rd|d	<   t        j                  j                  di |\  }}t        j                  d       5  |j                  |d
          t        j                  d      5 }t        j                  j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nnowr   )rP   rR   r   r   r   get_constrained_layoutTconstrained_layoutr   )r@   )return_filelike)r   )r   r   r/   r0   r1   hasattrr   r   Figurer   r   r   r5   ensure_cleansavefig)r=   rU   r>   r   r   r?   paths          rB    test_subplots_constrained_layoutz;TestDataFramePlotsSubplots.test_subplots_constrained_layout#  s    ub1ryy,,Q/66w?sK3::$$&>?+/F'(**%%2624''- 	)GGtAwG6 )$

""4()	) 	)) )	) 	)s$   ),D D5DD	DDz index_name, old_label, new_label)N new)oldr5  r4  )Nr3  r3  )Nr3  r"   Nr3  r   )r   r   r   c                 P   t        ddgddggddg      }||j                  _        |j                  |d      }t	        d	 |D              sJ t	        fd
|D              sJ |j                  |d      }t	        fd|D              sJ t	        fd|D              sJ y )Nr"   r   rf   zType AzType Br   Tr   r   c              3   B   K   | ]  }|j                         d k(    yw)r3  N)
get_ylabel).0r@   s     rB   	<genexpr>zSTestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>D  s     8R2==?b(8s   c              3   D   K   | ]  }|j                         k(    y wN)
get_xlabel)r:  r@   	old_labels     rB   r;  zSTestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>E  s     ?B2==?i/?s    )r   ylabelxlabelr   c              3   V   K   | ]   }|j                         t              k(   " y wr=  )r9  strr:  r@   	new_labels     rB   r;  zSTestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>I        D2==?c)n4D   &)c              3   V   K   | ]   }|j                         t              k(   " y wr=  )r>  rC  rD  s     rB   r;  zSTestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>J  rF  rG  )r   r   namer5   r~   )r=   r   
index_namer?  rE  r>   r?   s      ``  rB   %test_xlabel_ylabel_dataframe_subplotsz@TestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots0  s     AA'(H1EF" wwD4w0848888?$???? wwD9twTDtDDDDDtDDDDrD   r   r   T)r   stacked?)r   rL  widthr   r7  )r   r   rN  edge)r   rL  align)r   rL  rN  rP  )r   r   rP  )r   r   rN  rP  c                     t        dgdz  t        t        d            dt        d            } | j                  |fi | y )Nr   rf   r   r   )r   r2   r   _check_bar_alignmentr=   r   r>   s      rB   test_bar_align_multiple_columnsz:TestDataFramePlotsSubplots.test_bar_align_multiple_columnsL  s=    F aS1W4a>:%(K!!!"//rD   c                     t        t        j                  j                  d      j	                  d            } | j
                  |fi | y )Nr   rf   r   r/   r0   r1   r   rR  rS  s      rB   test_bar_align_single_columnz7TestDataFramePlotsSubplots.test_bar_align_single_columnr  s=     ryy,,Q/??BC!!!"//rD   c                     t        t        j                  j                  d      j	                  d            } | j
                  |fddd| y )Nr   r   rM  g?)rN  positionrV  rS  s      rB   test_bar_barwidth_positionz5TestDataFramePlotsSubplots.test_bar_barwidth_position  sD     ryy,,Q/??GH!!!"HC#HHrD   wr   c                    t        t        j                  j                  d      j	                  d            }|j
                  j                  d|      }|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 y )Nr   r   T)rL  rN  )r   r"   r   r   r   )g      g      @r   r  r.   g      @)r   r/   r0   r1   r   r5   r   r9   r   r   r   rw   get_xlimpatchesget_x)r=   r[  r>   r@   tickss        rB   test_bar_barwidth_position_intz9TestDataFramePlotsSubplots.test_bar_barwidth_position_int  s     ryy,,Q/??GHWW[[Q[/%%'
##E288O+DE{{}---zz!}""$,,,zz"~##%,,,rD   zkind, kwargsrL  r   c                     t        t        j                  j                  d      j	                  d            } | j
                  |f|dd| y )Nr   r   r"   )r   rN  rV  )r=   r   r   r>   s       rB   &test_bar_barwidth_position_int_width_1zATestDataFramePlotsSubplots.test_bar_barwidth_position_int_width_1  sD     ryy,,Q/??GH!!!"C4qCFCrD   c           	         |j                  ||||||d      }t        |      }|D ]  }	|dk(  rX|	j                  }
|	j                         \  }}t	        d |	j
                  D              }t        d |	j
                  D              }nc|dk(  rX|	j                  }
|	j                         \  }}t	        d |	j
                  D              }t        d |	j
                  D              }nt        t        j                  ||d	z
         t        j                  ||d	z          |	j
                  d
   }|dk(  r/|du s|du r'|j                         }||j                         |z  z   }n|dk(  rO|du rK|j                         |j                         t        |j                        z  |z  z   }|j                         }n|dk(  r=|du s|du r5|j!                         |j#                         |z  z   }|j!                         }nZ|dk(  rO|du rK|j!                         |j#                         t        |j                        z  |z  z   }|j!                         }nt        |
j%                         t'        j(                  t        |            k(  j+                         sJ |dk(  r)t        j                  |
j%                         d
   |       |dk(  r)t        j                  |
j%                         d
   |       t         |S )NT)r   rL  r   rP  rN  rY  r   r   c              3   <   K   | ]  }|j                           y wr=  )r_  r:  ps     rB   r;  zBTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>       =Qqwwy=   c              3   ^   K   | ]%  }|j                         |j                         z    ' y wr=  )r_  	get_widthrf  s     rB   r;  zBTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>  s!     MQqwwy1;;=8M   +-r   c              3   <   K   | ]  }|j                           y wr=  )get_yrf  s     rB   r;  zBTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>  rh  ri  c              3   ^   K   | ]%  }|j                         |j                         z    ' y wr=  )rn  
get_heightrf  s     rB   r;  zBTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>  s!     Naqwwy1<<>9Nrl  g      ?r   FcenterrO  )r5   r   r9   r]  minr^  maxr   get_ylimr   r   assert_almost_equalr_  rk  r   r8   rn  rp  r   r/   r"  r~   )r=   r>   r   rL  r   rP  rN  rY  r?   r@   axisax_minax_maxmin_edgemax_edgerg  rO  rq  s                     rB   rR  z/TestDataFramePlotsSubplots._check_bar_alignment  s    ww  
  % -	!Bu}xx!#="**==M"**MMxx!#="**==N2::NN   ""68d?;""68d?;

1Au}'T/X5Ewwy 887e#3Q[[]S_%Dx%OOwwyW_D8HQ\\^h%>>wwyGu$4Q\\^c"**o%E%PPwwy   %%'299SW+==BBDDD &&t'8'8':1'=vF&&&t'8'8':1'=tD  [-	!^ rD   )r   FFrq  r  r  )1__name__
__module____qualname__r   markslowparametrizerC   rH   rK   rV   r^   r   r   xfailr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  r'  r2  rK  rT  rW  rZ  ra  rc  rR  r   rD   rB   r   r   !   s`   [[[[V%DE3 F 38 [[[[V%DE1 F 1 [[[[V%DE+ F + [[Vff%56) 7), [[Vff%56
H 7
H [[L**8	$ [[VW0 X0d [[VffVff	

	(
	(4 [[DFD!FF3	
,,  [[[[UU1Xz*a/P$QR2 S 2;&, [[Vff	
**$"@:?&&+ [[202(  
G
G [[202(  
J
J
 [[T#;<
 =
J(J&I G ) [[*!21v	
	 [[V%<=E >	E" [[ t,tc:-s;u-us;.<-s;.<tf=tcFKv>sVLuv>usVL?fMv>sVL?fM9	
 B0C B0
 [[u-t,.--.	

0
0 [[u-t,.--.	

I
I [[S1c(+	- ,	- [[Y%&i'(i&'Z&'j$'(	
	D	D ErD   r   )__doc__r3   numpyr/   r   pandas.compatr   pandas.compat.numpyr   pandasrx   r   r   r   pandas._testing_testingr   pandas.tests.plotting.commonr   r	   r
   r   r   r   pandas.io.formats.printingr   importorskipr   r  r   r   rD   rB   <module>r     si    %    + 2  
   4f,'f-.O OrD   