
    Mh:q                         S r SSKrSSKrSSKrSSKJr  SSKJr  SSK	r
SSK	JrJrJr  SSKJr  SSKJrJrJrJrJrJr  SSKJr  \R4                  " S5      r\R4                  " S	5      r " S
 S5      rg)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                   0	   \ rS rSr\R
                  R                  \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  \R
                  R                  S/ SQ5      S 5       5       r	\R
                  R                  \R
                  R                  S/ SQ5      S 5       5       r
\R
                  R                  SSS/5      S	 5       r\R
                  R                  SSS/5      S
 5       r\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                  SS9S 5       r\R
                  R                  SSS/SS/SS/SS/SS/SS//5      S 5       rS r\R
                  R                  S0 SSS4S S!0SS!S!4/5      S" 5       r\R
                  R                  \R
                  R                  S#\" S$5      \" S%S$S&9/5      S' 5       5       rS( rS) r\R
                  R                  SS*S/SS/SS//5      S+ 5       rS, rS- rS. rS/ rS0 rS1 r\R
                  R                  \ =(       a    \!" 5       S2S3S49S5 5       r"\R
                  R                  \ =(       a    \!" 5       S2S3S49S6 5       r#S7 r$\R
                  R                  S8/ S9Q5      S: 5       r%S; r&S< r'S= r(S> r)S? r*\R
                  R                  S@SASBSCSDSESFSSG/4/5      \R
                  R                  S/ SHQ5      SI 5       5       r+\R
                  R                  SJSKSLSM.SKSLSNSO.SPSLSM.SPSLSNSO.SKS3SM.SKS3SNSO.SPS3SM.SPS3SNSO.SKSLSQ.SKSLSNSR.SPSLSQ.SPSLSNSR.SKSLSSST.SKSLSNSSSU.SPSLSSST.SPSLSNSSSU.SKS3SSST.SKS3SNSSSU.SPS3SSST.SPS3SNSSSU.SKSLSSSV.SKSLSNSSSW.SPSLSSSV.SPSLSNSSSW./5      SX 5       r,\R
                  R                  SJSKS3SM.SKSLSM.SPS3SM.SPSLSM.SKSLSQ.SPSLSQ./5      SY 5       r-\R
                  R                  SJSKS3SM.SKSLSM.SPS3SM.SPSLSM.SKSLSQ.SPSLSQ./5      SZ 5       r.\R
                  R                  S[SS\/5      S] 5       r/\R
                  R                  S^SKS_SL0/SPS_S30/SPS_SL0/SKS`SL0/SPS`SL0//5      Sa 5       r0      SdSb jr1Scr2gE)eTestDataFramePlotsSubplots!   kind)barbarhlineareac                    [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nUR                  USSSS9n[        USSS	9  UR                  S
:X  d   e[        X2R                  5       H  u  pE[        U[        U5      /S9  M     US S  H  n[        UR                  5        [        UR!                  5       SS9  US:w  a  [        UR!                  SS9SS9  [        UR                  R#                  5       SS9  [        UR%                  5       5        M     [        US   R                  5        [        US   R!                  5       5        [        US   R!                  SS95        [        US   R                  R#                  5       5        [        US   R%                  5       5        g )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         a/var/www/html/env/lib/python3.13/site-packages/pandas/tests/plotting/frame/test_frame_subplots.pytest_subplots(TestDataFramePlotsSubplots.test_subplots"   s    II!!!$++G4v++CR01

 wwD4TwJ$6:zzT!!!dJJ/JB \&-A,BC 0 s)B288$2--/?u}r111=uM288--/?2--/0  	tBx~~&tBx//12tBx//d/;<tBx~~//12tBx//12    c                    [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nUR                  USSS9nU H  n[        UR                  5        [        UR                  5       5        [        UR                  SS95        [        UR                  R                  5       5        [        UR                  5       5        M     g )	Nr   r   r   r   TFr   r   r    r-   )r   r0   r1   r2   r3   r4   r5   r6   r   r:   r;   r<   r=   r>   r   r?   r@   rA   s        rC   test_subplots_no_share_x3TestDataFramePlotsSubplots.test_subplots_no_share_x@   s     II!!!$++G4v++CR01
 wwD4w>B288$2--/02--D-9:288--/02--/0 rF   c                     [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nUR                  USSS9nU H  nUR                  5       c  M   e   g )Nr   r   r   r   TF)r   r   r!   )	r   r0   r1   r2   r3   r4   r5   r6   
get_legendrI   s        rC   test_subplots_no_legend2TestDataFramePlotsSubplots.test_subplots_no_legendO   sr     II!!!$++G4v++CR01
 wwD4w>B==?*** rF   r   r   c                 
   [        SSSS9n[        [        R                  R	                  S5      R                  S5      US9nUR                  USSS	9n[        US
SS9  US S  H  n[        UR                  5        [        UR                  5       SS9  [        UR                  SS9SS9  [        UR                  R                  5       SS9  [        UR                  5       5        M     [        US   R                  5        [        US   R                  5       5        [        US   R                  SS95        [        US   R                  R                  5       5        [        US   R                  5       5        [        USS9  g )N
2014-07-01MEr   startfreqperiodsr   r   r   TrH   r   r"   r$   r*   Fr+   r-   r/   r   )xrot)r   r   r0   r1   r2   r6   r   r   r:   r;   r<   r=   r   r>   r   idxr?   r@   rA   s         rC   test_subplots_timeseries3TestDataFramePlotsSubplots.test_subplots_timeseriesZ   s>   |$Cryy,,Q/66w?sKwwD4w=$6:s)B288$2--/?2--D-95I288--/?2--/0  	tBx~~&tBx//12tBx//d/;<tBx~~//12tBx//124a(rF   c                    [        SSSS9n[        [        R                  R	                  S5      R                  S5      US9nUR                  USS	S
SS9nU H  n[        UR                  5        [        UR                  5       5        [        UR                  SS95        [        UR                  R                  5       5        [        UR                  5       5        [        USS
SS9  M     g )NrQ   rR   r   rS   r   r   r   TF-      )r   r   r    rotfontsizer-   )
xlabelsizerW   
ylabelsize)r   r   r0   r1   r2   r6   r   r:   r;   r<   r=   r   rX   s         rC   test_subplots_timeseries_rot7TestDataFramePlotsSubplots.test_subplots_timeseries_rotq   s    |$Cryy,,Q/66w?sKwwD42PQwRB288$2--/02--D-9:288--/02--/0rabQG rF   col)numeric	timedeltadatetime_no_tzdatetime_all_tzc           
      |   [         R                  " / SQ5      [        R                  " SSS9[        R                  " SSS9[        R                  " SSS9/[        R                  " S5      [        R                  " S	5      [        R                  " S
5      /[        R                  " SSS9[        R                  " S	SS9[        R                  " S
SS9// SQS.n[        U5      nUR                  US9nUR                  5       S   R                  5       S   nX1   R                  nXV:H  R                  5       (       d   eg )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)rf   rg   rh   ri   textyr   r#   )r0   arraypd	Timedeltato_datetimer   r6   	get_linesget_datavaluesall)r>   re   datatestdatarA   resultexpecteds          rC   test_subplots_timeseries_y_axis:TestDataFramePlotsSubplots.test_subplots_timeseries_y_axis~   s    xx	*Ss+Rc*Rc* 454545 4$?4$?4$? 
 /#
& T?]]S]!"++-a0=''"''))))rF   c                     [         R                  " / SQ5      / SQS.n[        U5      nSn[        R                  " [
        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nrk   rv   )rf   rz   zno numeric data to plotmatchrz   r{   )r0   r}   r   pytestraises	TypeErrorr6   )r>   r   r   msgs       rC   %test_subplots_timeseries_y_text_error@TestDataFramePlotsSubplots.test_subplots_timeseries_y_text_error   sR     xx	*.
 T?']]9C0MMFM# 100s   A
A+z6not support for period, categorical, datetime_mixed_tz)reasonc                    [         R                  " / SQ5      [        R                  " SSS9[        R                  " SSS9[        R                  " SSS9/[        R                  " / SQ/ SQS	S
9[        R
                  " SSS9[        R
                  " S5      [        R
                  " S5      /S.n[        U5      nUR                  SSS9nUR                  5       S   R                  5       S   US   R                  :H  R                  5       (       d   eUR                  SSS9nUR                  5       S   R                  5       S   US   R                  :H  R                  5       (       d   eUR                  SSS9nUR                  5       S   R                  5       S   US   R                  :H  R                  5       (       d   eg)aY  
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
rk   rq   H)rU   z2017-08-01 02:00rs   )cba)r   r   r   F)
categoriesorderedTrt   rr   )rf   periodcategoricaldatetime_mixed_tzrf   r   )xr|   r   r#   r   r   N)r0   r}   r~   PeriodCategoricalr   r   r6   r   r   r   r   )r>   r   r   	ax_periodax_categoricalax_datetime_mixed_tzs         rC   -test_subplots_timeseries_y_axis_not_supportedHTestDataFramePlotsSubplots.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
#% 	 rF   zlayout, exp_layout)r   r   )r/   r   )r   r/   )r#      )r/   r   )r   r/   )r   r#   c                     [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nUR                  SUS9n[        USUS9  UR                  U:X  d   eg )	Nr   r   r   r   Tr   r&   r   r$   
r   r0   r1   r2   r3   r4   r5   r6   r   r7   )r>   r&   
exp_layoutr?   r@   s        rC   !test_subplots_layout_multi_column<TestDataFramePlotsSubplots.test_subplots_layout_multi_column   sr     II!!!$++G4v++CR01

 wwVw4$:>zzZ'''rF   c                    [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nSn[        R                  " [        US9   UR                  SSS	9  S S S 5        S
n[        R                  " [        US9   UR                  SSS	9  S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)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   r0   r1   r2   r3   r4   r5   r   r   
ValueErrorr6   )r>   r?   r   s      rC   'test_subplots_layout_multi_column_errorBTestDataFramePlotsSubplots.test_subplots_layout_multi_column_error   s    II!!!$++G4v++CR01
 B]]:S1GGT&G1 2 B]]:S1GGT(G3 21	 21 21s   ,B: C:
C
Cz:kwargs, expected_axes_num, expected_layout, expected_shaper#   r   r#   r&   )r   r   c                    [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nUR                  " SSS0UD6n[        UUUS9  UR                  U:X  d   eg )	Nr   r   r#   r   r   r   Tr$    r   )r>   kwargsexpected_axes_numexpected_layoutexpected_shaper?   r@   s          rC   "test_subplots_layout_single_column=TestDataFramePlotsSubplots.test_subplots_layout_single_column   s}     II!!!$++G4v++CR01
 ww///&"	

 zz^+++rF   rY   rl   1/1/2000rV   c                     [         R                  " S 5         [        [        R                  R                  S5      R                  S5      US9nUR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nr   )rl   r   r   T)r   r   r   )tmassert_produces_warningr   r0   r1   r2   standard_normalr6   )r>   rY   r?   s      rC   test_subplots_warnings1TestDataFramePlotsSubplots.test_subplots_warnings  sU     ''-299003CCFKSVWBGGT&G1 .--s   AA''
A5c                    [         R                  R                  SS5      u  p[        [        R
                  R                  S5      R                  S5      [        [        R                  S S 5      S9nUR                  SUS   SSS	9n[        USS
S9  UR                  S:X  d   eUS   R                  UL d   eUR                  SUS   SSS	9n[        USS
S9  UR                  S:X  d   eUS   R                  UL d   e[        USSS9  g )Nr   r   r   r   r   Tr   Fr   rA   r    sharey)r#   r   r$   r'   r#      )r   r   )mplpyplotr   r   r0   r1   r2   r3   r4   r5   r6   r   r7   figure)r>   figr@   r?   returneds        rC   test_subplots_multiple_axes6TestDataFramePlotsSubplots.test_subplots_multiple_axes  s   JJ''1-	II!!!$++G4v++CR01

 77DT!WU57Q(Qv>~~%%%{!!S(((77DT!WU57Q(Qv>~~%%%{!!S((($6:rF   c                 r   [        [        R                  R                  S5      R                  S5      [	        [
        R                  S S 5      S9nSn[        R                  R                  SS5      u  p4[        R                  " [        US9   UR                  SUS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r   r   z@The number of passed axes must be 3, the same as the output plotr   r   Tr   rA   )r   r0   r1   r2   r3   r4   r5   r   r   r   r   r   r   r6   )r>   r?   r   _r@   s        rC   !test_subplots_multiple_axes_error<TestDataFramePlotsSubplots.test_subplots_multiple_axes_error2  s    II!!!$++G4v++CR01
 Q**%%a+]]:S1GGTdG+ 211s   B((
B6)r   r#   c           	         [         R                  R                  SS5      u  p4[        [        R
                  R                  S5      R                  S5      [        [        R                  S S 5      S9n[        R                  " [        5         UR                  SXASSS9n[        USUS	9  UR                  S
:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r   r   TF)r   rA   r&   r    r   r   r$   )r   )r   r   r   r   r0   r1   r2   r3   r4   r5   r   r   UserWarningr6   r   r7   )r>   r&   r   r   r@   r?   r   s          rC   !test_subplots_multiple_axes_2_dim<TestDataFramePlotsSubplots.test_subplots_multiple_axes_2_dim?  s     **%%a+II!!!$++G4v++CR01
 ''4ww$eE  H h:F>>T))) 544s   0C
Cc                 H   [         R                  R                  SS5      u  p[        [        R
                  R                  S5      R                  S5      [        [        R                  S S 5      S9nUR                  SU/SSS9n[        USS	S
9  UR                  S:X  d   eg )Nr#   r   r   r   r   TFr   r   r$   r   )r   r   r   r   r0   r1   r2   r3   r4   r5   r6   r   r7   )r>   r   r@   r?   s       rC   &test_subplots_multiple_axes_single_colATestDataFramePlotsSubplots.test_subplots_multiple_axes_single_colY  s     **%%a+II!!!$++G4v++CR01

 ww$ewL$6:zzT!!!rF   c           	         [         R                  R                  SSSSS9u  p[         R                  R                  SSSSS9  [	        [
        R                  R                  S5      R                  S	5      [        S
SSS9S9n[        UR                  5       5       H  u  pEX4   R                  USS9  M     USS R                  5        H  n[        UR                  5       SS9  M     US   R                  5        H  n[        UR                  5       SS9  M     U/ SQS/4   R                  5        H  n[        UR                  5       SS9  M     U/ SQS/4   R                  5        H  n[        UR                  5       SS9  M     U/ SQS/4   R                  5        H  n[        UR                  5       SS9  M     g )Nr   T)r    r   g?gffffff?g333333?)leftrighthspacewspacer   )r   	   rQ   rR   r   rS   r   rl   )rA   r`   r   r/   Fr+   )r   r#   r   r#   )r   r   r   subplots_adjustr   r0   r1   r2   r   r   	enumerateravelr6   r   r;   r=   )r>   r   r@   r?   irA   s         rC   test_subplots_ts_share_axes6TestDataFramePlotsSubplots.test_subplots_ts_share_axesf  s   **%%a4%E

""DS"QII!!!$44W=<dBG
 tzz|,EAEJJ"qJ) - q*""$B2--/? % r(.."B2--/> # y1#~&,,.B2--/> / y1#~&,,.B2--/? /y1#~&,,.B2--/? /rF   c                 b   / SQ/ SQ/ SQS.n[        U[        SS5      S9nUSS	/   R                  S
S9nUS   R                  US   S
S9  [        US   R	                  5       SS9  [        US   R	                  5       S
S9  UR                  5        H  n[        UR                  5       S
S9  M     g )N)      ?       @      @      @)r   r   r   r   )rl   r#   r   r   )ABCz
2014 10 11z
2014 10 14r   r   r   Tr   r   r   )rA   secondary_yFr+   r#   )r   r   r6   r   r;   r   r=   )r>   dr?   r@   rA   s        rC   'test_subplots_sharex_axes_existing_axesBTestDataFramePlotsSubplots.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--/> rF   c                     [        [        R                  R                  S5      R                  S5      [	        S5      S9nUR                  SS9nU H)  n[        US/S9  [        UR                  5      S	:X  a  M)   e   g )
Nr   rl   rl   aaaaar9   Tr   r   r(   r#   	r   r0   r1   r2   r3   r6   r
   lenlinesr>   r?   r@   rA   s       rC   test_subplots_dup_columns4TestDataFramePlotsSubplots.test_subplots_dup_columns  sh    ryy,,Q/66v>WVwww%B SE2rxx=A%%% rF   c                     [        [        R                  R                  S5      R                  S5      [	        S5      S9nUR                  SSS9nU H)  n[        US/S9  [        UR                  5      S	:X  a  M)   e   g )
Nr   r   r   r   Tr   )r   r   r(   r#   r   r   s       rC   %test_subplots_dup_columns_secondary_y@TestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_y  sj    ryy,,Q/66v>WVww#w6B SE2rxx=A%%% rF   c                 <   [        [        R                  R                  S5      R                  S5      [	        S5      S9nUR                  SS9n[        US/S-  S	9  [        UR                  5      S
:X  d   e[        UR                  R                  5      S:X  d   eg )Nr   r   r   r   r   )r   z	a (right)rl   r(   r   )
r   r0   r1   r2   r3   r6   r
   r   r   right_ax)r>   r?   rA   s      rC   0test_subplots_dup_columns_secondary_y_no_subplotKTestDataFramePlotsSubplots.test_subplots_dup_columns_secondary_y_no_subplot  s    ryy,,Q/66v>WVWWW%R(9:288}!!!2;;$$%***rF   zWeird rounding problemsF)r   strictc           	          [         R                  " / SQ5      n[        S/S-  [        [	        SS5      5      S.[	        S5      S9nUR
                  R                  SSS	9n[        R                  " UR                  R                  5       U5        g )
N)皙?r         $@d   r   rl   r#   r   r   r   r   T)gridlog)r0   r}   r   r3   ranger6   r   r   assert_numpy_array_equalyaxisget_ticklocs)r>   r   r?   rA   s       rC   test_bar_log_no_subplots3TestDataFramePlotsSubplots.test_bar_log_no_subplots  sn     8812 aS1W4a+<=U1XNWW[[d[-
##BHH$9$9$;XFrF   c                 r   [         R                  " / SQ5      n[        [        SS/5      [        SS/5      /5      R                  R                  SSS9n[        R                  " US   R                  R                  5       U5        [        R                  " US   R                  R                  5       U5        g )	N)r  r   r	  g      Y@g     @@g     @   i,  i  T)r  r   r   r#   )
r0   r}   r   r   r6   r   r   r  r  r  )r>   r   rA   s      rC   test_bar_log_subplots0TestDataFramePlotsSubplots.test_bar_log_subplots  s     88@ASz*FC:,>?@EEIIt J 
 	##BqEKK$<$<$>I
##BqEKK$<$<$>IrF   c                     UnUR                   R                  SS9n[        U[        5      (       d   e[	        US / SQS9  g )NTr   heightweightcategory)expected_keys)r6   box
isinstancer   r	   )r>   hist_dfr?   r   s       rC   )test_boxplot_subplots_return_type_defaultDTestDataFramePlotsSubplots.test_boxplot_subplots_return_type_default  s@     d+&&))))D(H	
rF   rt)dictr@   bothc                 X    UnUR                   R                  USS9n[        UU/ SQSS9  g )NT)return_typer   r  F)r  check_ax_title)r6   r  r	   )r>   r   r#  r?   r   s        rC   !test_boxplot_subplots_return_type<TestDataFramePlotsSubplots.test_boxplot_subplots_return_type  s1    77;;2;=: 		
rF   c                 .   [        [        R                  R                  S5      R	                  S5      [        SSS9[        S5      S9n[        R                  SSS	S
9u  p#UR                  S	US9nU H6  n[        UR                  5      S:X  d   e[        UR                  5       S	S9  M8     [        US   R                  5       SS9  [        US   R                  S	S9SS9  [        US   R                  5       S	S9  [        US   R                  S	S9S	S9  g )Nr   r   r   r   r   r   ABr   r9   r#   T)r    r   r+   r   Fr-   r   r0   r1   r2   r   r   r3   pltr   r6   r   r   r   r=   r;   r>   r?   r   r@   rA   s        rC   $test_df_subplots_patterns_minorticks?TestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks  s    II!!!$44W=Z4J
 ,,q!D,1www.Brxx=A%%%2--/>  	tAw..0%@tAw..T.:EJtAw..0$?tAw..T.:DIrF   c                    [        [        R                  R                  S5      R	                  S5      [        SSS9[        S5      S9n[        R                  SS5      u  p#[        R                  " [        5         UR                  S	US	S
9nS S S 5        U H6  n[        UR                  5      S:X  d   e[        UR!                  5       S	S9  M8     [        US   R#                  5       SS9  [        US   R#                  S	S9SS9  [        US   R#                  5       S	S9  [        US   R#                  S	S9S	S9  g ! , (       d  f       N= f)Nr   r,  r   r   r   r-  r.  r#   T)r   rA   r    r+   r   Fr-   )r   r0   r1   r2   r   r   r3   r0  r   r   r   r   r6   r   r   r   r=   r;   r1  s        rC   2test_df_subplots_patterns_minorticks_1st_ax_hiddenMTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_1st_ax_hidden  s   II!!!$44W=Z4J

 ,,q!$''477DT$7?D 5Brxx=A%%%2--/>  	tAw..0%@tAw..T.:EJtAw..0$?tAw..T.:DI 54s   ;D<<
E
c                    [        [        R                  R                  S5      R	                  S5      [        SSS9[        S5      S9n[        R                  SS5      u  p#UR                  S	US
9nU He  n[        UR                  5      S:X  d   e[        UR                  5       S	S9  [        UR                  5       S	S9  [        UR                  S	S9S	S9  Mg     g )Nr   r,  r   r   r   r-  r.  r#   Tr   r+   r-   r/  r1  s        rC   /test_df_subplots_patterns_minorticks_not_sharedJTestDataFramePlotsSubplots.test_df_subplots_patterns_minorticks_not_shared  s    II!!!$44W=Z4J
 ,,q!$www.Brxx=A%%%2--/>2--/>2--D-94H	 rF   c                 p   [        [        R                  R                  S5      R                  S5      5      n[        R                  UR
                  SS 2S4'   [        R                  UR
                  S S2S4'   [        R                  R                  SS5      u  p#UR                  R                  USSS9  [        R                  " S	S
S5      n[        R                  " SSS5      n[        R                  " US   R                  5       U5        [        R                  " US   R                  5       U5        g )Nr   r,  rl   r#   r   TF)rA   r   r    g      @r         ?      )r   r0   r1   r2   nanilocr   r   r   r6   r   aranger   r  
get_xticks)r>   r?   r   axsexpected_ax1expected_ax2s         rC   test_subplots_sharex_false5TestDataFramePlotsSubplots.test_subplots_sharex_false  s     ryy,,Q/66w?@AA$$Q*
d59yyb#.yyq#.
##CF$5$5$7F
##CF$5$5$7FrF   c                 F   [        SSS9n[        [        R                  R	                  S5      R                  S5      US9n0 n[        [        R                  R                  S5      (       a  SUS	'   [        R                  R                  " S0 UD6u  pE[        R                  " S 5         UR                  US
   S9  [        R                  " SS9 n[        R                  R                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nnowr   )rT   rV   r   r   r   get_constrained_layoutTconstrained_layoutr   )rA   )return_filelike)r   )r   r   r0   r1   r2   hasattrr   r   Figurer   r   r   r6   ensure_cleansavefig)r>   rY   r?   r   r   r@   paths          rC    test_subplots_constrained_layout;TestDataFramePlotsSubplots.test_subplots_constrained_layout#  s    ub1ryy,,Q/66w?sK3::$$&>??+/F'(**%%262''-GGtAwG6$

""4( 7 .-66 .-s$   )'D D0D
D	D
D z index_name, old_label, new_label)N new)oldrT  rS  )NrR  rR  )NrR  r#   NrR  r   )r   r   r   c                 j  ^^ [        SS/SS//SS/S9nX%R                  l        UR                  USS9n[	        S	 U 5       5      (       d   e[	        U4S
 jU 5       5      (       d   eUR                  UTTSS9n[	        U4S jU 5       5      (       d   e[	        U4S jU 5       5      (       d   eg )Nr#   r   rl   zType AzType Br   Tr   r   c              3   F   #    U  H  oR                  5       S :H  v   M     g7f)rR  N)
get_ylabel).0rA   s     rC   	<genexpr>STestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots.<locals>.<genexpr>D  s     84R==?b(4s   !c              3   H   >#    U  H  oR                  5       T:H  v   M     g 7fN)
get_xlabel)rY  rA   	old_labels     rC   rZ  r[  E  s     ?$B==?i/$s   ")r   ylabelxlabelr   c              3   Z   >#    U  H   oR                  5       [        T5      :H  v   M"     g 7fr]  )rX  strrY  rA   	new_labels     rC   rZ  r[  I       Dt==?c)n4t   (+c              3   Z   >#    U  H   oR                  5       [        T5      :H  v   M"     g 7fr]  )r^  rc  rd  s     rC   rZ  r[  J  rf  rg  )r   r   namer6   r   )r>   r   
index_namer_  re  r?   r@   s      ``  rC   %test_xlabel_ylabel_dataframe_subplots@TestDataFramePlotsSubplots.test_xlabel_ylabel_dataframe_subplots0  s     AA'(H1EF" wwD4w08488888?$????? wwD9twTDtDDDDDDtDDDDDrF   r   r   T)r   stacked?)r   rm  widthr   rV  )r   r   ro  edge)r   rm  align)r   rm  ro  rq  )r   r   rq  )r   r   ro  rq  c                     [        S/S-  [        [        S5      5      S.[        S5      S9nU R                  " U40 UD6  g )Nr   rl   r  r   )r   r3   r  _check_bar_alignmentr>   r   r?   s      rC   test_bar_align_multiple_columns:TestDataFramePlotsSubplots.test_bar_align_multiple_columnsL  s;    F aS1W4a>:%(K!!"//rF   c                     [        [        R                  R                  S5      R	                  S5      5      nU R
                  " U40 UD6  g )Nr   rl   r   r0   r1   r2   r   rs  rt  s      rC   test_bar_align_single_column7TestDataFramePlotsSubplots.test_bar_align_single_columnr  s;     ryy,,Q/??BC!!"//rF   c                     [        [        R                  R                  S5      R	                  S5      5      nU R
                  " U4SSS.UD6  g )Nr   r   rn  g?)ro  positionrx  rt  s      rC   test_bar_barwidth_position5TestDataFramePlotsSubplots.test_bar_barwidth_position  sB     ryy,,Q/??GH!!"HC#HHrF   wr   c                    [        [        R                  R                  S5      R	                  S5      5      nUR
                  R                  SUS9nUR                  R                  5       n[        R                  " U[        R                  " / SQ5      5        UR                  5       S:X  d   eUR                  S   R                  5       S:X  d   eUR                  S	   R                  5       S
:X  d   eg )Nr   r   T)rm  ro  )r   r#   r   r   r   )g      g      @r   r<  r/   g      @)r   r0   r1   r2   r   r6   r   r:   r  r   r  r}   get_xlimpatchesget_x)r>   r  r?   rA   tickss        rC   test_bar_barwidth_position_int9TestDataFramePlotsSubplots.test_bar_barwidth_position_int  s     ryy,,Q/??GHWW[[Q[/%%'
##E288O+DE{{}---zz!}""$,,,zz"~##%,,,rF   zkind, kwargsrm  r   c                     [        [        R                  R                  S5      R	                  S5      5      nU R
                  " U4USS.UD6  g )Nr   r   r#   )r   ro  rx  )r>   r   r   r?   s       rC   &test_bar_barwidth_position_int_width_1ATestDataFramePlotsSubplots.test_bar_barwidth_position_int_width_1  sB     ryy,,Q/??GH!!"C4qCFCrF   c           
         UR                  UUUUUUSS9n[        U5      nU GH  n	US:X  aW  U	R                  n
U	R                  5       u  p[	        S U	R
                   5       5      n[        S U	R
                   5       5      nOcUS:X  aW  U	R                  n
U	R                  5       u  p[	        S U	R
                   5       5      n[        S U	R
                   5       5      nO[        e[        R                  " XS	-
  5        [        R                  " XS	-   5        U	R
                  S
   nUS:X  a1  USL d  USL a'  UR                  5       nUUR                  5       U-  -   nOUS:X  aP  USL aK  UR                  5       UR                  5       [        UR                  5      -  U-  -   nUR                  5       nOUS:X  a?  USL d  USL a5  UR!                  5       UR#                  5       U-  -   nUR!                  5       nO\US:X  aP  USL aK  UR!                  5       UR#                  5       [        UR                  5      -  U-  -   nUR!                  5       nO[        eU
R%                  5       [&        R(                  " [        U5      5      :H  R+                  5       (       d   eUS:X  a+  [        R                  " U
R%                  5       S
   U5        GM  US:X  a+  [        R                  " U
R%                  5       S
   U5        GM  [        e   U$ )NT)r   rm  r   rq  ro  r|  r  r   c              3   @   #    U  H  oR                  5       v   M     g 7fr]  )r  rY  ps     rC   rZ  BTestDataFramePlotsSubplots._check_bar_alignment.<locals>.<genexpr>       =*Qwwyy*   c              3   b   #    U  H%  oR                  5       UR                  5       -   v   M'     g 7fr]  )r  	get_widthr  s     rC   rZ  r    s     M*Qwwy1;;=8*   -/r   c              3   @   #    U  H  oR                  5       v   M     g 7fr]  )get_yr  s     rC   rZ  r    r  r  c              3   b   #    U  H%  oR                  5       UR                  5       -   v   M'     g 7fr]  )r  
get_heightr  s     rC   rZ  r    s     N:awwy1<<>9:r  g      ?r   Fcenterrp  )r6   r   r:   r  minr  maxr  get_ylimr   r   assert_almost_equalr  r  r   r9   r  r  r  r0   r?  r   )r>   r?   r   rm  r   rq  ro  r|  r@   rA   axisax_minax_maxmin_edgemax_edger  rp  r  s                     rC   rs  /TestDataFramePlotsSubplots._check_bar_alignment  s    ww  
  %Bu}xx!#="**==M"**MMxx!#="**==N2::NN   ""6d?;""6d?;

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D &&t'8'8':1'=vF&&&t'8'8':1'=tD  [ ^ rF   r   )r   FFr  r;  r;  )3__name__
__module____qualname____firstlineno__r   markslowparametrizerD   rJ   rN   rZ   rc   r   r   xfailr   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r  r   r   r  r  r!  r)  r2  r5  r8  rD  rP  rk  ru  ry  r}  r  r  rs  __static_attributes__r   rF   rC   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rF   r   )__doc__r4   numpyr0   r   pandas.compatr   pandas.compat.numpyr   pandasr~   r   r   r   pandas._testing_testingr   pandas.tests.plotting.commonr   r	   r
   r   r   r   pandas.io.formats.printingr   importorskipr   r0  r   r   rF   rC   <module>r     se    %    + 2  
   4,'-.O OrF   