
    Mh                         S r SSKrSSKrSSKrSSKJrJr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JrJrJrJr  \R2                  " S5      r\R6                  S 5       r " S S5      r " S	 S
5      r " S S5      rg)zTest cases for .hist method     N)	DataFrameIndexSeries
date_rangeto_datetime)
_check_ax_scales_check_axes_shape_check_colors_check_legend_labels_check_patches_all_filled_check_plot_works_check_text_labels_check_ticks_props
get_x_axis
get_y_axis
matplotlibc            	      l    [        [        R                  " S[        R                  S9[	        SSSS9SS9$ )N   dtypez
2020-01-01B)periodsfreqtsindexname)r   nparangefloat64r        X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/plotting/test_hist_method.pyr   r      s0    
		"BJJ'r< r"   c                      \ rS rSr\R
                  R                  S0 SS0SS0/5      S 5       r\R
                  R                  S0 SS	0/5      S
 5       rS r	S r
S rS rS rS rS r\R
                  R                   \R
                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       5       rS rS rS rS r\R
                  R                  S/ S Q5      S! 5       r\R
                  R                  S"S#S$/5      S% 5       r\R
                  R                  S&S'S(/5      S) 5       rS* rS+ rS, r\R
                  R9                  S-S.9S/ 5       rS0 rS1 r\R
                  R9                  S-S.9S2 5       r S3 r!S4 r"S5r#g')6TestSeriesPlots(   kwargsgridFfigsize   
   c                 0    [        UR                  40 UD6  g N)r   histselfr   r'   s      r#   test_hist_legacy_kwargs'TestSeriesPlots.test_hist_legacy_kwargs)   s    "'',V,r"   bins   c                     [         R                  " [        SS9   [        UR                  4SUR
                  R                  0UD6  S S S 5        g ! , (       d  f       g = f)NFcheck_stacklevelby)tmassert_produces_warningUserWarningr   r/   r   monthr0   s      r#   test_hist_legacy_kwargs_warning/TestSeriesPlots.test_hist_legacy_kwargs_warning-   s?     ''eLbggC"((..CFC MLLs   -A
Ac                 r    [         R                  R                  SS5      u  p#[        UR                  USS9  g )N   T)axdefault_axesmplpyplotsubplotsr   r/   r1   r   figrB   s       r#   test_hist_legacy_ax#TestSeriesPlots.test_hist_legacy_ax3   s*    **%%a+"''bt<r"   c                 r    [         R                  R                  SS5      u  p#[        UR                  X2SS9  g )NrA   T)rB   figurerC   rD   rH   s       r#   test_hist_legacy_ax_and_fig+TestSeriesPlots.test_hist_legacy_ax_and_fig7   s*    **%%a+"''b4Hr"   c                 r    [         R                  R                  SS5      u  p#[        UR                  USS9  g )NrA   T)rM   rC   rD   )r1   r   rI   _s       r#   test_hist_legacy_fig$TestSeriesPlots.test_hist_legacy_fig;   s*    $$Q*"''#DAr"   c                     [         R                  R                  SS5      u  nu  p4[        UR                  X#SS9  [        UR                  X$SS9  g )NrA      T)rM   rB   rC   rD   )r1   r   rI   ax1ax2s        r#   test_hist_legacy_multi_ax)TestSeriesPlots.test_hist_legacy_multi_ax?   s>    **--a3Zc"''#DI"''#DIr"   c                     [         R                  R                  SS5      u  p#Sn[        R                  " [
        US9   UR                  UR                  US9  S S S 5        g ! , (       d  f       g = f)NrA   z`Cannot pass 'figure' when using the 'by' argument, since a new 'Figure' instance will be createdmatch)r9   rM   )rE   rF   rG   pytestraises
ValueErrorr/   r   )r1   r   rI   rQ   msgs        r#   test_hist_legacy_by_fig_error-TestSeriesPlots.test_hist_legacy_by_fig_errorD   sT    $$Q*' 	 ]]:S1GGrxxG, 211s   A""
A0c                     [        [        R                  R                  S5      R	                  S5      5      nUR                  SS9S   S   n[        UR                  5      S:X  d   eg )NrU   r,   rU   )r4   r   )r   r   randomdefault_rngstandard_normalr/   lenpatches)r1   dfrB   s      r#   test_hist_bins_legacy%TestSeriesPlots.test_hist_bins_legacyM   sU    ryy,,Q/??HIWW!W_Q"2::!###r"   c                 @   UnSn[         R                  " [        US9   UR                  R	                  SS9  S S S 5        [         R                  " [        US9   UR                  R	                  SS/S9  S S S 5        g ! , (       d  f       NL= f! , (       d  f       g = f)Nz7The 'layout' keyword is not supported when 'by' is Noner[   rA   rA   layoutrA   )r]   r^   r_   heightr/   )r1   hist_dfrj   r`   s       r#   test_hist_layout TestSeriesPlots.test_hist_layoutR   sq    G]]:S1IINN&N) 2 ]]:S1IINN1a&N) 21 21 21s   A>B>
B
Bz by, layout, axes_num, res_layout)genderrU   rA   rU   rv   )ru      rU   )rx   rA   )category   rA   r|   r{   )rz   rU   ry   r|   rU   rU   )rz   rw   r|   )rx   rU   )rz   ry   r|   r|   rA   r|   )	classroomr~   rx   r~   c                     Un[         R                  " [        SS9   [        UR                  R
                  [        Xb5      US9nS S S 5        [        WXES9  g ! , (       d  f       N= f)NFr7   r9   rp   axes_numrp   )r:   r;   r<   r   rq   r/   getattrr	   )r1   rr   r9   rp   r   
res_layoutrj   axess           r#   test_hist_layout_with_by(TestSeriesPlots.test_hist_layout_with_by[   sP     
 ''eL$RYY^^PVWD M$E MLs   )A
A&c                 j    UnUR                   R                  UR                  SSS9n[        USSSS9  g )Nr|   rU   )      )r9   rp   r)   r|   r   rp   r)   )rq   r/   rz   r	   r1   rr   rj   r   s       r#   test_hist_layout_with_by_shape.TestSeriesPlots.test_hist_layout_with_by_shaper   s1    yy~~VW~M$67Kr"   c                    SSK JnJn  [        [        R
                  R                  S5      R                  S5      5      n[        [        R
                  R                  S5      R                  S5      5      nU" S5        UR                  5         U" S5        UR                  5         U" 5       nUR                  n[        U5      S:X  d   eg )Nr   )gcfsubplotrU   y   z   )matplotlib.pyplotr   r   r   r   re   rf   rg   r/   r   rh   )r1   r   r   xyrI   r   s          r#   test_hist_no_overlap$TestSeriesPlots.test_hist_no_overlapx   s    	

 299((+;;A>?299((+;;A>?		exx4yA~~r"   c                     UnUR                   R                  UR                  S9  [        [        R
                  R                  5       5      S:X  d   eg )Nr9   rA   )rq   r/   ru   rh   rE   rF   get_fignums)r1   rr   rj   s      r#   test_hist_by_no_extra_plots+TestSeriesPlots.test_hist_by_no_extra_plots   s=    
		"))$3::))+,111r"   c                     SSK Jn  U" 5       nU" 5       nUR                  S5      nSn[        R                  " [
        US9   UR                  XTS9  S S S 5        g ! , (       d  f       g = f)Nr   )rM   o   z&passed axis not bound to passed figurer[   )rB   rM   )pylabrM   add_subplotr]   r^   AssertionErrorr/   )r1   r   rM   fig1fig2rV   r`   s          r#   +test_plot_fails_when_ax_differs_from_figure;TestSeriesPlots.test_plot_fails_when_ax_differs_from_figure   sP     xxs#6]]>5GGsG( 655s   A
A(histtype, expected)barT)
barstackedT)stepF)
stepfilledTc                     [        [        R                  R                  S5      R	                  SS5      5      nUR                  US9n[        XBS9  g )NrU   rA   r,   histtypefilled)r   r   re   rf   integersr/   r   )r1   r   expectedserrB   s        r#   test_histtype_argument&TestSeriesPlots.test_histtype_argument   sB     RYY**1-66q"=>XXxX(!"6r"   z&by, expected_axes_num, expected_layout)NrA   rn   )brU   )rA   rU   c                    SS/-  SS/-  -   n[        [        R                  R                  S5      R	                  S5      USS9nSUR
                  l        [        UR                  S	S	US
9n[        XbUS9  [        US5        g )N   12rU   r   ar   r   T)rC   legendr9   r   )r   r   re   rf   rg   r   r   r   r/   r	   r   )r1   r9   expected_axes_numexpected_layoutr   sr   s          r#   test_hist_with_legend%TestSeriesPlots.test_hist_with_legend   sx    
 cU
R3%Z'299((+;;B?uSVW !d4BO$?ST3'r"   r9   Nr   c                 6   SS/-  SS/-  -   n[        [        R                  R                  S5      R	                  S5      USS9nSUR
                  l        [        R                  " [        S	S
9   UR                  SUSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   rU   r   r   r   r    Cannot use both legend and labelr[   Tc)r   r9   label)r   r   re   rf   rg   r   r   r]   r^   r_   r/   )r1   r9   r   r   s       r#   test_hist_with_legend_raises,TestSeriesPlots.test_hist_with_legend_raises   s|     cU
R3%Z'299((+;;B?uSVW]]:-OPFF$2SF1 QPPs   /B


Bc                     [         R                  R                  5       u  p#UR                  R	                  SUS9n[        UR                  5      S:X  d   e[        UR                  R                  5       S5        g )Nr5   r4   rB   	Frequency)
rE   rF   rG   plotr/   rh   ri   r   yaxis	get_labelr1   r   rQ   rB   s       r#   test_hist_kwargs TestSeriesPlots.test_hist_kwargs   sY    

##%WW\\qR\(2::!###288--/=r"   c                     [         R                  R                  5       u  p#UR                  R	                  SUS9nUR                  R	                  SUS9n[        UR                  R                  5       S5        g )Nr5   r   
horizontal)orientationrB   r   )rE   rF   rG   r   r/   r   xaxisr   r   s       r#   test_hist_kwargs_horizontal+TestSeriesPlots.test_hist_kwargs_horizontal   sY    

##%WW\\qR\(WW\\lr\:288--/=r"   c                     [         R                  R                  5       u  p#UR                  R	                  SUS9nUR                  R	                  SSUS9ng )Nr5   r   leftT)alignstackedrB   )rE   rF   rG   r   r/   r   s       r#   test_hist_kwargs_align&TestSeriesPlots.test_hist_kwargs_align   sD    

##%WW\\qR\(WW\\\<r"   zApi changed in 3.6.0)reasonc                 \   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SUS9n[        USS9  UR                  5       n[        US/[        U5      -  5        UR                  5       n[        US/[        U5      -  5        g NscipyT)logyrB   logr    )r]   importorskiprE   rF   rG   r   r/   r   get_xticklabelsr   rh   get_yticklabelsr1   r   rQ   rB   xlabelsylabelss         r#   test_hist_kdeTestSeriesPlots.test_hist_kde   s    G$

##%WW\\t\+5)$$&7RD3w<$78$$&7RD3w<$78r"   c                 n    [         R                  " S5        [        UR                  R                  5        g Nr   )r]   r   r   r   kder1   r   s     r#   test_hist_kde_plot_works(TestSeriesPlots.test_hist_kde_plot_works   s     G$"''++&r"   c                 n    [         R                  " S5        [        UR                  R                  5        g r   )r]   r   r   r   densityr   s     r#   test_hist_kde_density_works+TestSeriesPlots.test_hist_kde_density_works   s     G$"''//*r"   c                 \   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SUS9n[        USS9  UR                  5       n[        US/[        U5      -  5        UR                  5       n[        US/[        U5      -  5        g r   )r]   r   rE   rF   rG   r   r   r   r   r   rh   r   r   s         r#   test_hist_kde_logy"TestSeriesPlots.test_hist_kde_logy   s    G$

##%WW[[dr[*5)$$&7RD3w<$78$$&7RD3w<$78r"   c                 "   [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SSSUS9n[        USS9  [        UR                  5      S:X  d   e[        UR                  S/S-  S9  g )	Nr   Tr,   r   )r   r4   colorrB   r   r   )
facecolors)r]   r   rE   rF   rG   r   r/   r   rh   ri   r
   r   s       r#   test_hist_kde_color_bins(TestSeriesPlots.test_hist_kde_color_bins   sr    G$

##%WW\\t"CB\?5)2::"$$$bjjcURZ8r"   c                    [         R                  " S5        [        R                  R	                  5       u  p#UR
                  R                  SSUS9n[        USS9  UR                  5       n[        U5      S:X  d   e[        US/5        g )Nr   Tr)r   r   rB   r   r   rA   )r]   r   rE   rF   rG   r   r   r   	get_linesrh   r
   )r1   r   rQ   rB   liness        r#   test_hist_kde_color#TestSeriesPlots.test_hist_kde_color   sm    G$

##%WW[[d#"[55)5zQecU#r"   r!   )$__name__
__module____qualname____firstlineno__r]   markparametrizer2   r>   rJ   rN   rR   rX   ra   rk   rs   slowr   r   r   r   r   r   r   r   r   r   r   xfailr   r   r   r   r  r  __static_attributes__r!   r"   r#   r%   r%   (   s   [[XVUOi=Q'RS- T- [[XVQK'89D :D
=IBJ
-$
* [[[[*)*+,,,,	
F FL 2
) [[	
77 [[03DFV2W	(	( [[TD#;/2 02>>=
 [[45	9 6	9'+ [[459 699$r"   r%   c                      \ rS rSr\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       r	\R
                  R                  S 5       r
\R
                  R                  \R
                  R                  SSSS.S	S
0SS0/5      S 5       5       r\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       r\R
                  R                  S 5       rS r\R
                  R                  SSSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS.SSS.4	5      S 5       rS rS  rS! r\R
                  R                  S"S/ S#Q4/ S$Q/ S$Q4/5      S% 5       r\R
                  R                  S&/ S'Q5      S( 5       r\R
                  R                  S)SS*/5      \R
                  R                  S+SS,/5      S- 5       5       r\R
                  R                  S)SS*/5      \R
                  R                  S+SS,/5      S. 5       5       rS/ rS0 rS1 rS2 rS3 rS4 rS5 r S6r!g)7TestDataFramePlots   c                     [         R                  " [        SS9   [        UR                  5        S S S 5        g ! , (       d  f       g = f)NFr7   )r:   r;   r<   r   r/   )r1   rr   s     r#   test_hist_df_legacy&TestDataFramePlots.test_hist_df_legacy  s+    ''eLgll+ MLLs	   9
Ac           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS9   [        UR                  SS	9nS S S 5        [        WS
SS9  US   R                  5       (       a   e[        US/   R                  5        g ! , (       d  f       NM= f)NrU   rd        j+2Z     ReZr,   sizer   Fr7   )r(   rx   r~   r   rn   )r   r   re   rf   rg   r   r   int64r:   r;   r<   r   r/   r	   get_visibler1   rj   r   s      r#   test_hist_df_legacy_layout-TestDataFramePlots.test_hist_df_legacy_layout  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eL$RWW59D M$6::))++++"aS',,' MLs   C66
Dc                     [        [        R                  R                  S5      R	                  S5      5      n[        UR                  5        g )NrU   r,   rA   )r   r   re   rf   rg   r   r/   r1   rj   s     r#   test_hist_df_legacy_layout2.TestDataFramePlots.test_hist_df_legacy_layout2  s2    ryy,,Q/??HI"''"r"   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS	9   [        UR                  S
S9nS S S 5        [        WSS
S9  g ! , (       d  f       N= f)NrU   r,   r5   r  r  r,   r  r5   Fr7   r   ro      r   )r   r   re   rf   rg   r   r   r  r:   r;   r<   r   r/   r	   r   s      r#   test_hist_df_legacy_layout3.TestDataFramePlots.test_hist_df_legacy_layout3  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eL$RWWV<D M$6: MLs   C
Cr'   T)sharexshareyr)   r*   r4   r5   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        R                  " [        SS	9   [        UR                  40 UD6  S S S 5        g ! , (       d  f       g = f)
NrU   r)  r  r  r,   r  r5   Fr7   )r   r   re   rf   rg   r   r   r  r:   r;   r<   r   r/   )r1   r'   rj   s      r#   !test_hist_df_legacy_layout_kwargs4TestDataFramePlots.test_hist_df_legacy_layout_kwargs.  s    
 ryy,,Q/??HIII!!!$--""hh	 . 
1 ''eLbgg00 MLLs   B::
Cc                 l    U" [        S5      5      nSu  p4Su  pVUR                  X5XFS9n[        XsXTUS9  g )Nr,         r   r&   
xlabelsizexrot
ylabelsizeyrot)ranger/   r   )r1   frame_or_seriesobjxfyfr9  r;  r   s           r#   (test_hist_df_legacy_layout_labelsize_rot;TestDataFramePlots.test_hist_df_legacy_layout_labelsize_rotB  s>     eBi(
xx2RxK4TtTr"   c                    SSK Jn  [        [        S5      5      nUR	                  SSSS9nUR                  5        Vs/ s H  n[        XA5      (       d  M  UPM     nn[        R                  " US   R                  5       S5        g s  snf )	Nr   	Rectangler,   Tr|   )
cumulativer4   r   ry         ?)
matplotlib.patchesrE  r   r<  r/   get_children
isinstancer:   assert_almost_equal
get_height)r1   rE  r   rB   r   rectss         r#   test_hist_df_legacy_rectangles1TestDataFramePlots.test_hist_df_legacy_rectanglesK  sn    0U2YXXAtX<OO-J-qA1I-J
uRy335s; Ks   BBc                 ^    [        [        S5      5      nUR                  SS9n[        USS9  g )Nr,   T)r   r   r   )r   r<  r/   r   )r1   r   rB   s      r#   test_hist_df_legacy_scale,TestDataFramePlots.test_hist_df_legacy_scaleU  s*    U2YXX$X5)r"   c                     [        [        S5      5      n[        R                  " [        5         UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr,   r   )foo)r   r<  r:   external_error_raisedAttributeErrorr/   )r1   r   s     r#   "test_hist_df_legacy_external_error5TestDataFramePlots.test_hist_df_legacy_external_error\  s8    U2Y%%n5HHH 655s   A
Ac                    [        [        R                  R                  S5      R                  S5      [        R                  R                  S5      R	                  SSS5      [        [        R                  R                  S5      R	                  SSS[        R                  S95      [        [        R                  R                  S5      R	                  SSS[        R                  S9SS9S	.5      nUR                  [        5      nS
n[        R                  " [        US9   UR                  5         S S S 5        g ! , (       d  f       g = f)NrU   r,   r   l     p/ l    @spc/ r   T)utc)r   r   r   dzDhist method requires numerical or datetime columns, nothing to plot.r[   )r   r   re   rf   r   r   r  astypeobjectr]   r^   r_   r/   )r1   rj   df_or`   s       r#   *test_hist_non_numerical_or_datetime_raises=TestDataFramePlots.test_hist_non_numerical_or_datetime_raisesc  s    YY**1-44R8YY**1-66q"bA II))!,55+-@"BHH 6 
 !II))!,55+-@"BHH 6  	
" yy T]]:S1IIK 211s   "D<<
E
layout_testNr~   )rp   expected_sizer{   r   )rx   rx   r   )r|   ry   )ry   rU   r}   c           	      H   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   UR                  US   S9nUS	   n[        US
US9  g )NrU   rd   r  r  r,   r  rp   ro   rb  rx   r   )
r   r   re   rf   rg   r   r   r  r/   r	   )r1   ra  rj   r   r   s        r#   rs   #TestDataFramePlots.test_hist_layout|  s     ryy,,Q/??HIII!!!$--""hh	 . 
1 wwk(3w4/$8<r"   c           	         [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   Sn[        R                  " [        US9   UR                  S	S
9  S S S 5        [        R                  " S5      n[        R                  " [        US9   UR                  SS
9  S S S 5        Sn[        R                  " [        US9   UR                  SS
9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NS= f! , (       d  f       g = f)NrU   rd   r  r  r,   r  z1Layout of 1x1 must be larger than required size 3r[   rn   ro   z)Layout must be a tuple of (rows, columns))rA   1At least one dimension of layout must be positivery   ry   )r   r   re   rf   rg   r   r   r  r]   r^   r_   r/   reescape)r1   rj   r`   s      r#   test_hist_layout_error)TestDataFramePlots.test_hist_layout_error  s   ryy,,Q/??HIII!!!$--""hh	 . 
1 B]]:S1GG6G" 2 iiCD]]:S1GG4G  2A]]:S1GG8G$ 21 21
 21 21s$   D/#E E/
D= 
E
Ec           	      h   [        [        R                  R                  S5      R	                  S5      5      n[        [        R                  R                  S5      R                  SSS[        R                  S95      US'   [        UR                  SS9  [        R                  R                  5         g )	NrU   d   rU   r  r  rn  r  T)rC   )r   r   re   rf   rg   r   r   r  r   r/   rE   rF   tight_layoutr%  s     r#   test_tight_layout$TestDataFramePlots.test_tight_layout  s    ryy,,Q/??IJII!!!$--""hh	 . 
1 	"''5

!r"   c           	      l    [        / SQ/ SQS.5      n[        UR                  SSSSSS	9n[        USS
9  g )Ng      ?      ?g333333??rx   )pigrabbitrv  rv  rw  )lengthanimalTrx  ry  r5   r   )rC   columnr9   r4   r9  r9  )r   r   r/   r   r   s      r#   test_hist_subplot_xrot)TestDataFramePlots.test_hist_subplot_xrot  sE    1C
 !GG
 	4a(r"   zcolumn, expectedwidthrx  rq   )rx  r  rq   c                     [        / SQ/ SQ/ SQS./ SQS9n[        UR                  SUSS	9n[        S
5       Vs/ s H  oTSU4   R	                  5       PM     nnXb:X  d   eg s  snf )N)ffffff?皙?g333333?r  g?rs  )rx   rt  g333333@rU   rA   r~  )rv  rw  duckchickenhorse)r   TrA   rx   )rC   rz  rp   rx   r   )r   r   r/   r<  	get_title)r1   rz  r   rj   r   iresults          r#    test_hist_column_order_unchanged3TestDataFramePlots.test_hist_column_order_unchanged  sx     31-
 @
 !GG	
 38(;(Qq!t*&&((;!!! <s   A"r   r   c                     [        [        R                  R                  S5      R	                  SSSS9SS/S9nUR                  US	9n[        XBS
9  g )NrU   rA   r,   rm  r  r   r   columnsr   r   r   r   re   rf   r   r/   r   r1   r   r   rj   rB   s        r#   r   )TestDataFramePlots.test_histtype_argument  sS     II!!!$--a(-CcSVZ
 WWhW'!"6r"   r9   r   rz  r   c                 ~   Uc  Ub  SOSnSU4nU=(       d    SS/nUb  U/S-  n[        SS/-  SS/-  -   SS	9n[        [        R                  R	                  S5      R                  S
5      USS/S9n[        UR                  SSUUS9n[        XUS9  Uc  Uc  US   n[        XX5       H  u  p[        X5        M     g )NrA   rU   r   r   r   r   r   r   r   r   rU   r   r  T)rC   r   r9   rz  r   r   )r   r   r   re   rf   rg   r   r/   r	   zipr   )r1   r9   rz  r   r   expected_labelsr   rj   r   expected_labelrB   s              r#   r   (TestDataFramePlots.test_hist_with_legend  s     "$0BA/0 .S#J>./!3ObC5j2:-C8II!!!$44W=#J
 !GG
 	$?S:&.7D"%o"<N 4 #=r"   c                 (   [        SS/-  SS/-  -   SS9n[        [        R                  R	                  S5      R                  S5      USS	/S
9n[        R                  " [        SS9   UR                  SXSS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r  rU   r  r   r   r  r   r[   Tr[  )r   r9   rz  r   )
r   r   r   re   rf   rg   r]   r^   r_   r/   )r1   r9   rz  r   rj   s        r#   r   /TestDataFramePlots.test_hist_with_legend_raises  s     bC5j2:-C8II!!!$44W=#J
 ]]:-OPGG4BSGA QPPs   (B
Bc                    [        [        R                  R                  S5      R	                  S5      5      n[
        R                  R                  5       u  p#UR                  R                  SUS9n[        UR                  5      S:X  d   eg )NrU   rd   r5   r   r,   r   r   re   rf   rg   rE   rF   rG   r   r/   rh   ri   r1   rj   rQ   rB   s       r#   test_hist_df_kwargs&TestDataFramePlots.test_hist_df_kwargs-  sf    ryy,,Q/??HI

##%WW\\qR\(2::"$$$r"   c                 2   [        [        R                  R                  S5      R	                  S5      / SQS9nSS/S-  US'   [
        R                  R                  5       u  p#UR                  R                  SUS	9n[        UR                  5      S
:X  d   eg )NrU   r,   r|   Ar   CDr  r   r   r5   Er   r4  r  r  s       r#   test_hist_df_with_nonnumerics0TestDataFramePlots.test_hist_df_with_nonnumerics3  s    II!!!$44W=(
 *q.3

##%WW\\qR\(2::"$$$r"   c                 0   [        [        R                  R                  S5      R	                  S5      / SQS9nSS/S-  US'   [
        R                  R                  5       u  p#UR                  R                  US	9n[        UR                  5      S
:X  d   eg )NrU   r  r  r  r   r   r5   r  )rB   r&   r  r  s       r#   %test_hist_df_with_nonnumerics_no_bins8TestDataFramePlots.test_hist_df_with_nonnumerics_no_bins>  s}    II!!!$44W=(
 *q.3

##%WW\\R\ 2::"$$$r"   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SUS9nUS   R                  R                  USSS	9  [        USS
/S9  UR                  5       R                  5       (       d   eUR                  R                  5       R                  5       (       d   eg )NrU   r   r|   abcdr  r   T)r   rB   r   rB   r   secondary_y	b (right)labels)r   r   re   rf   rg   listrE   rF   rG   r   r/   r   	get_yaxisr  right_axr  s       r#   test_hist_secondary_legend-TestDataFramePlots.test_hist_secondary_legendI  s    II!!!$44W=tF|

 

##%W\\dr2
3R$? 	Rk(:;||~))++++{{$$&224444r"   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SSUS9nUS   R                  R                  USSS	9  [        UR                  S
S/S9  UR                  R                  5       R                  5       (       a   eUR                  5       R                  5       (       d   eg )NrU   r  r  r  r   Tr   r  rB   r   r  	a (right)r  r  r   r   re   rf   rg   r  rE   rF   rG   r   r/   r   left_axr  r  r  s       r#   test_hist_secondary_secondary0TestDataFramePlots.test_hist_secondary_secondaryY  s    II!!!$44W=tF|
 

##%W\\dD
3R$? 	RZZk0JK::'')557777||~))++++r"   c                    [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  R                  5       u  p#US   R                  R                  SSUS9nUS   R                  R                  USS	9  [        UR                  S
S/S9  UR                  R                  5       R                  5       (       d   eUR                  5       R                  5       (       d   eg )NrU   r  r  r  r   Tr  r   )rB   r   r  r  r  r  s       r#   test_hist_secondary_primary.TestDataFramePlots.test_hist_secondary_primaryh  s    II!!!$44W=tF|
 

##%W\\dD
3R- 	RZZc0BCzz##%113333||~))++++r"   c                 .   [         R                  " S5      n[        [        R                  SS/S[        R                  [        R                  // SQ/[        S5      S9n[        R                  " / SQ5      n[        / S	Q/ SQ/[        S5      S9n[        R                  " / S
Q/ SQ/5      n[        R                  R                  5       u  pgUR                  R                  XsS9  UR                  5        Vs/ s H!  n[        XR                  5      (       d  M  UPM#     n	nU	 V
s/ s H  oR                  5       PM     nn
[        R                  R                  5       u  plUR                  R                  XS9  UR                  5        Vs/ s H!  n[        XR                  5      (       d  M  UPM#     nnU V
s/ s H  oR                  5       PM     nn
[!        S [#        X5       5       5      (       d   e[        R                  " SS/SS//5      nSn[         R$                  " [&        US9   [        R                  R                  5       u  nnUR                  R                  UUS9  S S S 5        g s  snf s  sn
f s  snf s  sn
f ! , (       d  f       g = f)Nzmatplotlib.patchesr  333333?皙?)r  g?ru  abcr  )      ?r  ?)r  r  r  )r  r  r  )r  r  r  )rB   weightsc              3   .   #    U  H  u  pX:H  v   M     g 7fr.   r!   ).0h0h1s      r#   	<genexpr>ETestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<genexpr>  s     G*F28*Fs   r  r  z?weights must have the same shape as data, or be a single columnr[   )r]   r   r   r   nanr  arrayrE   rF   rG   r   r/   rI  rJ  rE  rL  allr  r^   r_   )r1   mpl_patchesrj   r  	no_nan_dfno_nan_weightsrQ   ax0r   rM  rectheightsrV   no_nan_rectsno_nan_heightsidxerror_weightsr`   rW   s                     r#   test_hist_with_nans_and_weights2TestDataFramePlots.test_hist_with_nans_and_weightsx  s   ))*>?ffc3#rvvrvv!6HK
 ((,-@$u+V	#46H"IJ$$&
-,,.W.q*Q@U@U2V.W167??$7$$&s;'')
)!Z;P;P-QA) 	 
 9EE//+EG#g*FGGGGG88c4[4,$?@O]]:S1ZZ((*FAsNN30@A 21 X7
 F 21s0   7I2I2%I7I<-I<9J-<J
Jr!   )"r
  r  r  r  r]   r  r  r  r!  r&  r+  r  r0  rA  rN  rQ  rW  r_  rs   rj  rp  r|  r  r   r   r   r  r  r  r  r  r  r  r  r!   r"   r#   r  r     s   [[, , [[( ($ [[# # [[; ; [[[[dd3i5IFTU;W1 1  [[U U [[< < [[* * [[   2 [[f577778888
	
==%0")& [[01*,IJ	
"", [[	
77 [[TD#;/[[Xc{35 4 05< [[TD#;/[[Xc{3
B 4 0
B%	%	%5 ,, Br"   r  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  \R                  R                  S
/ SQ/ SQ/ SQ/5      S 5       5       r\R                  R                  S 5       r\R                  R                  \R                  R                  S/ SQ/ SQ/ SQ/5      S 5       5       r\R                  R                  \R                  R                  S0 SSS./5      S 5       5       r\R                  R                  \R                  R                  SSSS.SS/S/ S Q0S!S//5      S" 5       5       rS# rS$ rS% rS& rS' rS( r\R                  R                  S)/ S*Q5      S+ 5       rS,rg-).TestDataFrameGroupByPlotsi  c           	      d   SSK Jn  [        R                  R	                  S5      n[        UR                  S5      S/S9n[        UR                  SSS[        R                  S	95      US
'   UR                  SSS5      US'   S/S-  US'   U" UR                  UR                  S9n[        USSS9  g )Nr   _grouped_histr,   r$  r  r  r  r  r  r   r|   r  Xr  r   r~   r   ) pandas.plotting._matplotlib.histr  r   re   rf   r   rg   r   r   r  r  r  r	   r1   r  rsrj   r   s        r#   test_grouped_hist_legacy2TestDataFrameGroupByPlots.test_grouped_hist_legacy  s    BYY""2&r))'2SEBKK""hh	  
3 ++aB'3%"*3RTTbdd+$6:r"   c           	      T   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US'   UR                  S	S
S5      US'   S/S-  US'   UR                  UR                  S9n[        US
SS9  g )Nr,   r$  r  r  r  r  r  r   r   r|   r  r  r  r   r~   r   )r   re   rf   r   rg   r   r   r  r/   r  r	   r1   r  rj   r   s       r#   *test_grouped_hist_legacy_axes_shape_no_colDTestDataFrameGroupByPlots.test_grouped_hist_legacy_axes_shape_no_col  s    YY""2&r))'2SEBKK""hh	  
3 ++aB'3%"*3ww"$$w$6:r"   c           	      V   [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   UR                  SSS9n[        USSS9  [        USS9  g )NrU   r$  r  r  r  r  r,   r  r   r   r|   r  r  r  r   )r9   rotrA   rn   r   r{  )r   re   rf   r   rg   r   r   r  r/   r	   r   r  s       r#   #test_grouped_hist_legacy_single_key=TestDataFrameGroupByPlots.test_grouped_hist_legacy_single_key  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3ww#2w&$6:4b)r"   c                 l   SSK Jn  SSKJn  [        R
                  R                  S5      n[        UR                  S5      S/S9n[        UR                  SS	S
[        R                  S95      US'   UR                  SSS
5      US'   Su  pVSu  pxU" UR                  UR                  SSUUUUSS9	n	U	R                  5        H_  n
U
R                  5        Vs/ s H  n[!        X5      (       d  M  UPM     nnUS   R#                  5       n[$        R&                  " US5        Ma     [)        XXvUS9  g s  snf )Nr   rD  r  rU   r$  r  r  r  r  r,   r  r   r|   r  r3  r6  T)r9   rF  r4   r8  r9  r:  r;  r   ry   rG  r7  )rH  rE  r  r  r   re   rf   r   rg   r   r   r  r  r  ravelrI  rJ  rL  r:   rK  r   )r1   rE  r  r  rj   r?  r@  r9  r;  r   rB   r   rM  rq   s                 r#   ,test_grouped_hist_legacy_grouped_hist_kwargsFTestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist_kwargs  s#   0BYY""1%r))'2SEBKK""hh	  
3 ++aB'3
DDtt

 **,B " 1N 11Z5MQ 1EN2Y))+F""63/  	4TtT Os   D1/D1c           	      d   SSK Jn  [        R                  R	                  S5      n[        UR                  S5      S/S9n[        UR                  SSS	[        R                  S
95      US'   UR                  SSS	5      US'   S/S	-  US'   U" UR                  UR                  SS9n[        USS9  g )Nr   r  rU   r$  r  r  r  r  r,   r  r   r|   r  r  r  T)r9   r   r   r   )r  r  r   re   rf   r   rg   r   r   r  r  r  r   r  s        r#   %test_grouped_hist_legacy_grouped_hist?TestDataFrameGroupByPlots.test_grouped_hist_legacy_grouped_hist  s    BYY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3RTTbdd5U+r"   c           	         SSK Jn  [        R                  R	                  S5      n[        UR                  S5      S/S9n[        UR                  SSS	[        R                  S
95      US'   UR                  SSS	5      US'   S/S	-  US'   [        R                  " [        5         U" UR                  UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr   r  rU   r$  r  r  r  r  r,   r  r   r|   r  r  r  r   )r9   rT  )r  r  r   re   rf   r   rg   r   r   r  r:   rU  rV  r  r  )r1   r  r  rj   s       r#   %test_grouped_hist_legacy_external_err?TestDataFrameGroupByPlots.test_grouped_hist_legacy_external_err  s    BYY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*3%%n5"$$244U3 655s   %C
Cc           	         [         R                  R                  S5      n[        UR	                  S5      S/S9n[        UR                  SSS[         R                  S95      US	'   UR                  S
SS5      US'   S/S-  US'   Sn[        R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)NrU   r$  r  r  r  r  r,   r  r   r   r|   r  r  r  z$Specify figure size by tuple insteadr[   default)r9   r)   )r   re   rf   r   rg   r   r   r  r]   r^   r_   r/   )r1   r  rj   r`   s       r#   $test_grouped_hist_legacy_figsize_err>TestDataFrameGroupByPlots.test_grouped_hist_legacy_figsize_err  s    YY""1%r))'2SEBKK""hh	  
3 ++aB'3%"*34]]:S1GGsIG. 211s    B::
Cc                    Sn[        [        R                  R                  S5      R	                  SSUS95      n[        [        R                  R                  S5      R	                  SSUS95      n[        R                  R                  S5      R                  SS/US9n[        X2US	.5      nUR                  S
5      nUR                  5       n[        U5      S:X  d   e[        [        R                  R                  5       5      S:X  d   eg )Nr,   rU      r4  r  <   r   rA   )rq   weightru   ru   )r   r   re   rf   normalchoicer   groupbyr/   rh   rE   rF   r   )r1   nr  rq   
gender_intdf_intgbr   s           r#   test_grouped_hist_legacy23TestDataFrameGroupByPlots.test_grouped_hist_legacy2*  s    		--a077Ra7HI		--a077BQ7GHYY**1-44aV!4D
f*UV^^H%wwy4yA~~3::))+,111r"   zmsg, plot_col, by_col, layout)z1Layout of 1x1 must be larger than required size 2r  ru   rn   )z1Layout of 1x3 must be larger than required size 4rq   rz   r  )rf  rq   rz   rg  c                     Un[         R                  " [        US9   UR                  U[	        Xd5      US9  S S S 5        g ! , (       d  f       g = f)Nr[   rz  r9   rp   )r]   r^   r_   r/   r   )r1   rr   r`   plot_colby_colrp   rj   s          r#   test_grouped_hist_layout_error8TestDataFrameGroupByPlots.test_grouped_hist_layout_error5  s:    2 ]]:S1GG8(;FGK 211s   A  
Ac                     Un[         R                  " [        SS9   [        UR                  SUR
                  SS9nS S S 5        [        WSSS9  g ! , (       d  f       N= f)NFr7   rq   rv   r  rU   r   )r:   r;   r<   r   r/   ru   r	   r   s       r#    test_grouped_hist_layout_warning:TestDataFrameGroupByPlots.test_grouped_hist_layout_warningR  sP    ''eL$RYYvD M 	$6:	 MLs   !A
Azlayout, check_layout, figsize)r{   r{   N))ry   rA   r{   N)r   r   )r   r+   c                 T    UnUR                  SUR                  X$S9n[        USX4S9  g )Nrq   )rz  r9   rp   r)   r|   r   )r/   rz   r	   )r1   rr   rp   check_layoutr)   rj   r   s          r#    test_grouped_hist_layout_figsize:TestDataFrameGroupByPlots.test_grouped_hist_layout_figsize[  s-     wwh2;;vwW$<Qr"   r'   rq   r~   )rz  rp   c                     Un[         R                  " [        SS9   [        UR                  4SS0UD6nS S S 5        [        WSSS9  g ! , (       d  f       N= f)NFr7   r9   r   rx   r~   r   )r:   r;   r<   r   r/   r	   )r1   rr   r'   rj   r   s        r#   #test_grouped_hist_layout_by_warning=TestDataFrameGroupByPlots.test_grouped_hist_layout_by_warninge  sM     ''eL$RWWGGGD M$6: MLs   A		
Azkwargs, axes_num, layoutru   )rx   r5   r   rU   rz  rq   r  rz   rx   c                 @    UnUR                   " S0 UD6n[        XcUS9  g )Nr   r!   )r/   r	   )r1   rr   r'   r   rp   rj   r   s          r#   test_grouped_hist_layout_axes7TestDataFrameGroupByPlots.test_grouped_hist_layout_axesn  s$     ww  $&Ar"   c                     Un[         R                  R                  SS5      u  p4UR                  / SQUS   S9n[	        USSS9  [
        R                  " XTS   5        US   R                  UL d   eg )NrU   rx   r  r   rz  rB   r  r   rE   rF   rG   r/   r	   r:   assert_numpy_array_equalrM   r1   rr   rj   rI   r   returneds         r#   test_grouped_hist_multiple_axes9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axes{  sl    JJ''1-	77"BtAw7O(Qv>
##H1g6{!!S(((r"   c                     Un[         R                  R                  SS5      u  p4UR                  SUS   S9n[	        USSS9  [
        R                  " XTS   5        US   R                  UL d   eg )	NrU   rx   r   rA   )r9   rB   r  r   r   r$  r&  s         r#   'test_grouped_hist_multiple_axes_no_colsATestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_no_cols  sk    JJ''1-	77kd1g76(Qv>
##H1g6{!!S(((r"   c                     Un[         R                  R                  SS5      u  p4Sn[        R                  " [
        US9   UR                  SUS9nS S S 5        g ! , (       d  f       g = f)NrU   rx   z@The number of passed axes must be 1, the same as the output plotr[   rq   r#  )rE   rF   rG   r]   r^   r_   r/   )r1   rr   rj   rI   r   r`   s         r#   %test_grouped_hist_multiple_axes_error?TestDataFrameGroupByPlots.test_grouped_hist_multiple_axes_error  sP    JJ''1-	P]]:S177(t74D 211s    A
A(c                 J   UnUR                  SUR                  SS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       a   e[	        U5      R                  X45      (       a   eg )Nrq   T)rz  r9   r-  r/   ru   r   joinedr   r1   rr   rj   rV   rW   s        r#   test_axis_share_x+TestDataFrameGroupByPlots.test_axis_share_x  s    77(ryy7F #%%c////#%%c//// c?))#3333c?))#33333r"   c                 J   UnUR                  SUR                  SS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       a   e[	        U5      R                  X45      (       a   eg )Nrq   T)rz  r9   r.  )r/   ru   r   r2  r   r3  s        r#   test_axis_share_y+TestDataFrameGroupByPlots.test_axis_share_y  s    77(ryy7F #%%c////#%%c//// c?))#3333c?))#33333r"   c                 L   UnUR                  SUR                  SSS9u  p4[        U5      R                  X45      (       d   e[        U5      R                  X45      (       d   e[	        U5      R                  X45      (       d   e[	        U5      R                  X45      (       d   eg )Nrq   T)rz  r9   r-  r.  r1  r3  s        r#   test_axis_share_xy,TestDataFrameGroupByPlots.test_axis_share_xy  s    77(ryyd7S #%%c////#%%c////#%%c////#%%c////r"   r   r   c                     [        [        R                  R                  S5      R	                  SSSS9SS/S9nUR                  SUS	9n[        XBS
9  g )NrU   rA   r,   rd   r  r   r   r  )r9   r   r   r  r  s        r#   r   0TestDataFrameGroupByPlots.test_histtype_argument  sU     II!!!$--a'-BSRUJ
 WWhW/!"6r"   r!   N)r
  r  r  r  r  r  r  r  r  r  r  r  r]   r  r  r  r  r  r  r  r   r(  r+  r.  r4  r7  r:  r   r  r!   r"   r#   r  r    s   ;&; *$$UL,&4&/"	2 [[[['	
.L/ 0L
 [[; ; [[[['	!8:STR	 
R
 [[[[Xx6,R'ST; U ; [[[["/F;891fE	
B B
))54
4	0 [[	
77r"   r  ) __doc__rh  numpyr   r]   pandasr   r   r   r   r   pandas._testing_testingr:   pandas.tests.plotting.commonr   r	   r
   r   r   r   r   r   r   r   r   rE   fixturer   r%   r  r  r!   r"   r#   <module>rE     s    # 	       ,'  U$ U$pTB TBnt7 t7r"   