
    ds                     *   d Z ddlZddlZddlZddlmc mZ ddl	m
Z
mZmZmZ ddlmZ ddlmZmZ ej        d             Zej         G d de                      Zej         G d d	e                      Zej         G d
 de                      ZdS )z Test cases for .hist method     N)	DataFrameIndexSeriesto_datetime)TestPlotBase_check_plot_worksc                  ,    t          j        d          S )Ntsname)tmmakeTimeSeries     b/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/plotting/test_hist_method.pyr
   r
      s    $''''r   c                      e Zd Zd Zd Zd Zej        j        d             Z	d Z
d Zd Zej                            dg d	          d
             Zej                            dddg          d             Zej                            dddg          d             Zd Zej                            d          ej        d                         Zej        d             ZdS )TestSeriesPlotsc                    t          |j                   t          |j        d           t          |j        d           t          j        t          d          5  t          |j        |j        j                   d d d            n# 1 swxY w Y   t          j        t          d          5  t          |j        |j        j        d           d d d            n# 1 swxY w Y   | j                            d	d	          \  }}t          |j        |d
           t          |j        ||d
           t          |j        |d
           t          j	                     | j                            d	d          \  }\  }}t          |j        ||d
           t          |j        ||d
           d}t          j        t          |          5  |                    |j        |           d d d            d S # 1 swxY w Y   d S )NFgrid   
   figsizecheck_stacklevelby   )r   bins   T)axdefault_axes)r#   figurer$   )r%   r$      )r%   r#   r$   z`Cannot pass 'figure' when using the 'by' argument, since a new 'Figure' instance will be createdmatch)r   r%   )r   histr   assert_produces_warningUserWarningindexmonthpltsubplotsclosepytestraises
ValueError)selfr
   figr#   ax1ax2msgs          r   test_hist_legacyz TestSeriesPlots.test_hist_legacy   s   "'""""'...."'73333'eLLL 	: 	:bg"(.9999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:'eLLL 	B 	Bbg"(.qAAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B (##Aq))R"'bt<<<<"'b4HHHH"'#DAAAA



(++Aq11Zc3"'##DIIII"'##DIIII' 	 ]:S111 	- 	-GGrxG,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   !B		BB/"CC!$C!G77G;>G;c                     t          t          j                            dd                    }|                    d          d         d         }t          |j                  dk    sJ d S )Nr   r&   r!   r   )r   nprandomrandnr)   lenpatches)r4   dfr#   s      r   test_hist_bins_legacyz%TestSeriesPlots.test_hist_bins_legacy8   sY    ryr1--..WW!W__Q"2:!######r   c                 L   |}d}t          j        t          |          5  |j                            d           d d d            n# 1 swxY w Y   t          j        t          |          5  |j                            ddg           d d d            d S # 1 swxY w Y   d S )Nz7The 'layout' keyword is not supported when 'by' is Noner'   r"   r"   layoutr"   )r1   r2   r3   heightr)   )r4   hist_dfrA   r8   s       r   test_hist_layoutz TestSeriesPlots.test_hist_layout=   s!   G]:S111 	* 	*INN&N)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* ]:S111 	* 	*INN1a&N)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s#   AAA.BB Bc                 h   |}t          j        t          d          5  t          |j        j        |j        d          }d d d            n# 1 swxY w Y   |                     |dd           t          j        t          d          5  t          |j        j        |j        d          }d d d            n# 1 swxY w Y   |                     |dd           t          j        t          d          5  t          |j        j        |j        d	          }d d d            n# 1 swxY w Y   |                     |d
d	           t          j        t          d          5  t          |j        j        |j        d          }d d d            n# 1 swxY w Y   |                     |d
d           t          j        t          d          5  t          |j        j        |j        d          }d d d            n# 1 swxY w Y   |                     |d
d           t          j        t          d          5  t          |j        j        |j        d          }d d d            n# 1 swxY w Y   |                     |d
d           t          j        t          d          5  t          |j        j        |j	        d          }d d d            n# 1 swxY w Y   |                     |dd           |j                            |j        dd          }|                     |d
dd           d S )NFr   r&   r"   r   rF   r&   axes_numrF   )   )rO   r"      r"   rR   r&   rP   r&   r&   )rO   r&   rP   rR   r"   rR   rO   rR   r&   )      )r   rF   r   rN   rF   r   )
r   r*   r+   r   rG   r)   gender_check_axes_shapecategory	classroomr4   rH   rA   axess       r   test_hist_layout_with_byz(TestSeriesPlots.test_hist_layout_with_byF   s   
 'eLLL 	R 	R$RY^	&QQQD	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	Rta???'eLLL 	S 	S$RY^	'RRRD	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	S 	Sta???'eLLL 	T 	T$RY^FSSSD	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Tta???'eLLL 	U 	U$RY^GTTTD	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Uta???'eLLL 	U 	U$RY^GTTTD	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Uta???'eLLL 	U 	U$RY^GTTTD	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Uta???'eLLL 	U 	U$RY^VTTTD	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Uta???y~~VW~MMtaPPPPPs}   "AAA
"B88B<?B<6"D$$D(+D(""FFF"G<<H H :"I((I,/I,&"KKKc                    ddl m}m} t          t          j                            d                    }t          t          j                            d                    } |d           |                                  |d           |                                  |            }|j        }t          |          dk    sJ d S )Nr   )gcfsubplotr&   y   z   )
matplotlib.pyplotrc   rd   r   r<   r=   r>   r)   r`   r?   )r4   rc   rd   xyr5   r`   s          r   test_hist_no_overlapz$TestSeriesPlots.test_hist_no_overlapl   s    	
 	
 	
 	
 	
 	
 	
 	

 29??1%%&&29??1%%&&		ceex4yyA~~~~~~r   c                     |}|j                             |j                  }t          | j                                                  dk    sJ d S )Nr   r"   )rG   r)   r[   r?   r.   get_fignumsr_   s       r   test_hist_by_no_extra_plotsz+TestSeriesPlots.test_hist_by_no_extra_plots|   sK    y~~~++48''))**a//////r   c                     ddl m}  |            } |            }|                    d          }d}t          j        t
          |          5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nr   )r%   o   z&passed axis not bound to passed figurer'   )r#   r%   )pylabr%   add_subplotr1   r2   AssertionErrorr)   )r4   r
   r%   fig1fig2r6   r8   s          r   +test_plot_fails_when_ax_differs_from_figurez;TestSeriesPlots.test_plot_fails_when_ax_differs_from_figure   s          vxxvxxs##6]>555 	) 	)GGs4G(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A22A69A6histtype, expected)barT)
barstackedT)stepF)
stepfilledTc                     t          t          j                            dd                    }|                    |          }|                     ||           d S )Nr"   r   histtypefilled)r   r<   r=   randintr)   _check_patches_all_filled)r4   r~   expectedserr#   s        r   test_histtype_argumentz&TestSeriesPlots.test_histtype_argument   sU     RY&&q"--..XXxX((&&r(&;;;;;r   z&by, expected_axes_num, expected_layout)Nr"   rD   )br&   )r"   r&   c                 "   ddgz  ddgz  z   }t          t          j                            d          |d          }d|j        _        t          |j        dd|	          }|                     |||
           | 	                    |d           d S )N   12   ar,   r   r   T)r$   legendr   rM   )
r   r<   r=   r>   r,   r   r   r)   r\   _check_legend_labels)r4   r   expected_axes_numexpected_layoutr,   sr`   s          r   test_hist_with_legendz%TestSeriesPlots.test_hist_with_legend   s    
 cU
R3%Z'29??2&&e#>>> !d4BOOOt.?XXX!!$,,,,,r   r   Nr   c                 .   ddgz  ddgz  z   }t          t          j                            d          |d          }d|j        _        t          j        t          d	          5  |	                    d
|d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r    Cannot use both legend and labelr'   Tc)r   r   label)
r   r<   r=   r>   r,   r   r1   r2   r3   r)   )r4   r   r,   r   s       r   test_hist_with_legend_raisesz,TestSeriesPlots.test_hist_with_legend_raises   s     cU
R3%Z'29??2&&e#>>>]:-OPPP 	2 	2FF$2SF111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   $B

BBc                    | j                                         \  }}|j                            d|          }t	          |j                  dk    sJ |                     |j                                        d           t          j
                     | j                                         \  }}|j                            d|          }|                     |j                                        d           t          j
                     | j                                         \  }}|j                            dd|          }t          j
                     d S )	Nr    r!   r#   	Frequency
horizontal)orientationr#   leftT)alignstackedr#   )r.   r/   plotr)   r?   r@   _check_text_labelsyaxis	get_labelr   r0   xaxis)r4   r
   _r#   s       r   test_hist_kwargsz TestSeriesPlots.test_hist_kwargs   s   !!##2W\\qR\((2:!#### 2 2 4 4kBBB



!!##2W\\lr\:: 2 2 4 4kBBB



!!##2W\\\<<





r   zApi changed in 3.6.0)reasonc                 ~   | j                                         \  }}|j                            d|          }|                     |d           |                                }|                     |dgt          |          z             |                                }|                     |dgt          |          z             t          |j        j
                   t          |j        j                   | j                                         \  }}|j        
                    d|          }|                     |d           |                                }|                     |dgt          |          z             |                                }|                     |dgt          |          z             d S )NT)logyr#   logr    )r.   r/   r   r)   _check_ax_scalesget_xticklabelsr   r?   get_yticklabelsr   kdedensity)r4   r
   r   r#   xlabelsylabelss         r   test_hist_kdezTestSeriesPlots.test_hist_kde   s    !!##2W\\t\++b...$$&&"G)<===$$&&"G)<==="'+&&&"'/***!!##2W[[dr[**b...$$&&"G)<===$$&&"G)<=====r   c                 <   | j                                         \  }}|j                            ddd|          }|                     |d           t          |j                  dk    sJ |                     |j        dgdz             | j                                         \  }}|j                            dd|	          }|                     |d           |	                                }t          |          d
k    sJ |                     |dg           d S )NTr   r   )r   r!   colorr#   r   r   )
facecolorsr)r   r   r#   r"   )
r.   r/   r   r)   r   r?   r@   _check_colorsr   	get_lines)r4   r
   r   r#   liness        r   test_hist_kde_colorz#TestSeriesPlots.test_hist_kde_color   s   !!##2W\\t"CB\??b...2:"$$$$2:3%"*===!!##2W[[d#"[55b...5zzQ53%(((((r   )__name__
__module____qualname__r9   rB   rI   r1   markslowra   rj   rm   ru   parametrizer   r   r   r   xfailtdskip_if_no_scipyr   r   r   r   r   r   r      s       - - -6$ $ $
* * * [#Q #Q #QJ   0 0 0
) ) ) [	
 	
 	
 < < < [03DFV2W 	- 	- 	- [TD#;//2 2 0/2    [455> >  65>( ) ) ) ) )r   r   c                   R   e Zd Zej        j        d             Zd Zd Zd Z	d Z
ej                            ddg dfg d	g d	fg          d
             Zej                            dg d          d             Zej                            dddg          ej                            dddg          d                         Zej                            dddg          ej                            dddg          d                         Zd Zd Zd Zej        d             ZdS )TestDataFramePlotsc                 	   ddl m t          j        t          d          5  t          |j                   d d d            n# 1 swxY w Y   t          t          j	        
                    dd                    }t          t          j	                            dddt          j        	                    |d<   t          j        t          d          5  t          |j        d
          }d d d            n# 1 swxY w Y   |                     |dd           |d                                         rJ t          |dg         j                   t          t          j	        
                    dd                    }t          |j                   t          t          j	        
                    dd                    }t          t          j	                            dddt          j        	                    |d<   t          j        t          d          5  t          |j        d          }d d d            n# 1 swxY w Y   |                     |dd           t          j        t          d          5  t          |j        dd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |j        d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |j        d           d d d            n# 1 swxY w Y   |d         }d\  }}d\  }}|                    ||||          }|                     |||||           d\  }}d\  }}|                    ||||          }|                     |||||           t          j                     |                    ddd          }	fd|	                                D             }
t          j        |
d                                         d            t          j                     |                    d!          }	|                     |	d"#           t          j                     t          j        t.                    5  |                    d$%           d d d            d S # 1 swxY w Y   d S )&Nr   	RectangleFr   d   r&        j+2Z     ReZsizedtyper   rO   rT   rM   rD   r"   r    rW   rE      T)sharexshareyr   r   r;         r   (   
xlabelsizexrot
ylabelsizeyrotrR   )
cumulativer!   r   c                 4    g | ]}t          |          |S r   
isinstance.0rh   r   s     r   
<listcomp>z:TestDataFramePlots.test_hist_df_legacy.<locals>.<listcomp>2  s(    JJJqAy1I1IJJJJr   rP         ?)r   r   r   rx   )foo)matplotlib.patchesr   r   r*   r+   r   r)   r   r<   r=   r>   r   r   int64r\   get_visible_check_ticks_propsr0   get_childrenassert_almost_equal
get_heightr   external_error_raisedAttributeError)r4   rH   rA   r`   r   xfyfr   r   r#   rectsr   s              @r   test_hist_df_legacyz&TestDataFramePlots.test_hist_df_legacy   s^   000000'eLLL 	, 	,gl+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, rysA..//I""h	   
 
1 'eLLL 	: 	:$RW5999D	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:ta???:))+++++"aS','''rysA..//"'""" rysA..//I""h	   
 
1 'eLLL 	= 	=$RWV<<<D	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=ta??? 'eLLL 	A 	Abgd4@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 'eLLL 	8 	8bgw7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 'eLLL 	/ 	/bgA....	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ eB
dxx2DRdxKKRdr 	  	
 	
 	
 B
dww"4BTwJJRdr 	  	
 	
 	
 	


XXAtX<<JJJJBOO--JJJ
uRy3355s;;;



XX$Xb...



 %n55 	  	 HHH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s}   AAAC77C;>C;H::H>H>8JJ #J K%%K),K)L..L25L2SS
Sc                 R   t          t          j                            d          t          j                            ddd          t          t          j                            dddt          j                            t          t          j                            dddt          j                  d          d          }|                    t                    }d	}t          j
        t          |
          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r   l     p/ l    @spc/ )r   T)utc)r   r   r   dzDhist method requires numerical or datetime columns, nothing to plot.r'   )r   r<   r=   randr   r   r   astypeobjectr1   r2   r3   r)   )r4   rA   df_or8   s       r   *test_hist_non_numerical_or_datetime_raisesz=TestDataFramePlots.test_hist_non_numerical_or_datetime_raises@  sS   Y^^B''Y&&q"b11 I%%+-@"BH &   
 !I%%+-@"BH &   	   
 
" yy  T]:S111 	 	IIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :DD #D c                    t          t          j                            dd                    }t	          t          j                            dddt          j                            |d<   d ddddddddd	d	dd
d
ddd	ddddddddddf	}|D ]>}|                    |d                   }|d         }|                     |d|           ?d}t          j
        t          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        d          }t          j
        t          |          5  |                    d           d d d            n# 1 swxY w Y   d}t          j
        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r&   r   r   r   rT   )rF   expected_sizerQ   rV   )rO   rO   rU   )rR   rP   )rP   r&   rS   rF   rE   r   rO   rM   z1Layout of 1x1 must be larger than required size 3r'   rD   z)Layout must be a tuple of (rows, columns))r"   1At least one dimension of layout must be positiverP   rP   )r   r<   r=   r>   r   r   r   r)   r\   r1   r2   r3   reescape)r4   rA   layout_to_expected_sizelayout_testr`   r   r8   s          r   rI   z#TestDataFramePlots.test_hist_layoutY  s   rysA..//I""h	   
 
1 f557777777788888888
#
 3 	F 	FK77+h"7788D"?3H""4!H"EEEE B]:S111 	# 	#GG6G"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# iCDD]:S111 	! 	!GG4G   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!A]:S111 	% 	%GG8G$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s6   /DDDE//E36E3F;;F?F?c                 ^   t          t          j                            dd                    }t	          t          j                            dddt          j                            |d<   t          |j        d           | j	        
                                 t          j                     d S )Nr   r&   r   r   r   T)r$   )r   r<   r=   r>   r   r   r   r   r)   r.   tight_layoutr   r0   )r4   rA   s     r   test_tight_layoutz$TestDataFramePlots.test_tight_layout  s    rysA..//I""h	   
 
1 	"'5555





r   c                     t          g dg dd          }t          |j        ddddd	          }|                     |d
           d S )Ng      ?      ?g333333??rO   )pigrabbitr  r  r  )lengthanimalTr  r  r    r   )r$   columnr   r!   r   r   )r   r   r)   r   )r4   rA   r`   s      r   test_hist_subplot_xrotz)TestDataFramePlots.test_hist_subplot_xrot  sx    111CCC 
 
 !G
 
 
 	1-----r   zcolumn, expectedNwidthr  rG   )r  r  rG   c                     t          g dg dg ddg d          }t          |j        d|d	          fd
t          d          D             }||k    sJ d S )N)ffffff?皙?g333333?r  g?r	  )rO   r
  g333333@r&   r"   r  )r  r  duckchickenhorse)r,   Tr"   rO   )r$   r  rF   c                 H    g | ]}d |f                                          S )r   )	get_title)r   ir`   s     r   r   zGTestDataFramePlots.test_hist_column_order_unchanged.<locals>.<listcomp>  s-    ;;;Q$q!t*&&((;;;r   rO   )r   r   r)   range)r4   r  r   rA   resultr`   s        @r    test_hist_column_order_unchangedz3TestDataFramePlots.test_hist_column_order_unchanged  s     333111--- 
 @??
 
 
 !G	
 
 
 <;;;%((;;;!!!!!!r   rv   rw   c                     t          t          j                            ddd          ddg          }|                    |          }|                     ||	           d S )
Nr"   r   r   r&   r   r   r   columnsr}   r   r   r<   r=   r   r)   r   r4   r~   r   rA   r#   s        r   r   z)TestDataFramePlots.test_histtype_argument  sc     ry((BX(>>c
SSSWWhW''&&r(&;;;;;r   r   r   r  r   c                    ||dnd}d|f}|pddg}||gdz  }t          ddgz  ddgz  z   d	          }t          t          j                            d
d          |ddg          }t          |j        dd||          }|                     |||           |
||d         }t          ||          D ]\  }	}
| 	                    |
|	           d S )Nr"   r&   r   r   r   r   r   r   r   r   r,   r&  T)r$   r   r   r  rM   r   )
r   r   r<   r=   r>   r   r)   r\   zipr   )r4   r   r  r   r   expected_labelsr,   rA   r`   expected_labelr#   s              r   r   z(TestDataFramePlots.test_hist_with_legend  s%    "$0BAA/0 .S#J>./!3ObC5j2:-C888ryr1--US#JOOO !G
 
 
 	t.?XXX:&.7D"%ot"<"< 	: 	:NB%%b.9999	: 	:r   c                 <   t          ddgz  ddgz  z   d          }t          t          j                            dd          |dd	g
          }t          j        t          d          5  |                    d||d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r&   r   r   r*  r   r'   Tr   )r   r   r  r   )	r   r   r<   r=   r>   r1   r2   r3   r)   )r4   r   r  r,   rA   s        r   r   z/TestDataFramePlots.test_hist_with_legend_raises  s     bC5j2:-C888ryr1--US#JOOO]:-OPPP 	B 	BGG4BvSGAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   *BBBc                    t          t          j                            dd                    }| j                                        \  }}|j                            d|          }t          |j	                  dk    sJ d S )Nr   r&   r    r   )
r   r<   r=   r>   r.   r/   r   r)   r?   r@   r4   rA   r   r#   s       r   test_hist_df_kwargsz&TestDataFramePlots.test_hist_df_kwargs  sl    ryr1--..!!##2W\\qR\((2:"$$$$$$r   c                    t          t          j                            d                              dd          g d          }ddgdz  |d	<   | j                                        \  }}|j                            d|
          }t          |j
                  dk    sJ | j                                        \  }}|j                            |          }t          |j
                  dk    sJ d S )N*   r   rR   )ABCDr%  rh   ri   r    Er   r   )r#   r   )r   r<   r=   RandomStater>   r.   r/   r   r)   r?   r@   r0  s       r   test_hist_df_with_nonnumericsz0TestDataFramePlots.test_hist_df_with_nonnumerics  s    I!!"%%++B22<P<P<P
 
 
 *q.3!!##2W\\qR\((2:"$$$$!!##2W\\R\  2:"$$$$$$r   c                    t          t          j                            dd          t	          d                    }| j                                        \  }}|d         j                            d|          }|d         j                            |dd	           | 	                    |dd
g           |
                                                                sJ |j        
                                                                sJ t          j                     | j                                        \  }}|d         j                            dd|          }|d         j                            |dd	           | 	                    |j        dd
g           |j        
                                                                rJ |
                                                                sJ t          j                     | j                                        \  }}|d         j                            dd|          }|d         j                            |d           | 	                    |j        ddg           |j        
                                                                sJ |
                                                                sJ t          j                     d S )Nr   rR   abcdr%  r   T)r   r#   r   )r#   r   secondary_yz	b (right))labels)r   r=  r#   z	a (right))r#   r   )r   r<   r=   r>   listr.   r/   r   r)   r   	get_yaxisr   right_axr   r0   left_axr0  s       r   test_hist_secondary_legendz-TestDataFramePlots.test_hist_secondary_legend  s   ryr1--tF||DDD !!##2W\dr22
3R$??? 	!!"c;-?!@@@||~~))+++++{$$&&2244444



 !!##2W\dDD
3R$??? 	!!"*k;5O!PPP:''))5577777||~~))+++++



 !!##2W\dDD
3R--- 	!!"*k35G!HHHz##%%1133333||~~))+++++





r   c                 <   t          t          j        ddgdt          j        t          j        gg dgt          d                    }t          j        g d          }t          g dg dgt          d                    }t          j        g d	g d
g          }ddlm | j                                        \  }}|j	        
                    ||           fd|                                D             }d |D             }| j                                        \  }}	|j	        
                    |	|           fd|	                                D             }
d |
D             }t          d t          ||          D                       sJ t          j        ddgddgg          }d}t          j        t           |          5  | j                                        \  }}|j	        
                    ||           d d d            d S # 1 swxY w Y   d S )Nr  333333?皙?)r  g?r  abcr%  )      ?rE  ?)rF  r  rE  )rE  rH  rH  )rI  rI  rI  r   r   )r#   weightsc                 4    g | ]}t          |          |S r   r   r   s     r   r   zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>A  s(    KKKq*Q	2J2JKKKKr   c                 6    g | ]}|                                 S r   r   r   rects     r   r   zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>B  s"    7774??$$777r   c                 4    g | ]}t          |          |S r   r   r   s     r   r   zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>E  s(    RRRaAy9Q9QRRRRr   c                 6    g | ]}|                                 S r   rM  rN  s     r   r   zFTestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<listcomp>F  s"    EEE$//++EEEr   c              3   (   K   | ]\  }}||k    V  d S )Nr   )r   h0h1s      r   	<genexpr>zETestDataFramePlots.test_hist_with_nans_and_weights.<locals>.<genexpr>G  s*      GGB28GGGGGGr   rH  rI  z?weights must have the same shape as data, or be a single columnr'   )r   r<   nanr?  arrayr   r   r.   r/   r   r)   r   allr+  r1   r2   r3   )r4   rA   rJ  	no_nan_dfno_nan_weightsr   ax0r   heightsr6   no_nan_rectsno_nan_heightsidxerror_weightsr8   r7   r   s                  @r   test_hist_with_nans_and_weightsz2TestDataFramePlots.test_hist_with_nans_and_weights2  s    fc3#rvrv!6HKK
 
 
 (,,,--@$u++VVV	#4#4#46H6H6H"IJJ000000""$$3
W---KKKKC,,..KKK77777""$$3sN;;;RRRR3#3#3#5#5RRREEEEEGG#g~*F*FGGGGGGGG8c4[4,$?@@O]:S111 	B 	BX&&((FAsN30@AAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs   9HHH)r   r   r   r1   r   r   r   r   rI   r  r  r   r!  r   r   r   r1  r:  rC  r   skip_if_no_mplr`  r   r   r   r   r      s       [S  S  S j  2'% '% '%T   . . .& [0001***,I,I,IJ	
 " " ", [	
 	
 	
 < < < [TD#;//[Xc{33: : 43 0/:4 [TD#;//[Xc{33B B 43 0/B% % %% % %$ $ $L B B B B Br   r   c                       e Zd Zd Zd Zej        j        d             Zd Z	d Z
d Zd Zej                            dg d	          d
             ZdS )TestDataFrameGroupByPlotsc                 <   ddl m ddlm} t	          t
          j                            dd          dg          }t          t
          j        	                    dd	dt
          j
        
                    |d<   t
          j        	                    ddd          |d<   dgdz  |d<    ||j        |j                  }|                     |dd           t          j                     |                    |j                  }|                     |dd           t          j                     |                    dd          }|                     |dd           |                     |d           t          j                     d\  }}d\  }} ||j        |j        dd||||d	  	        }|                                D ]Q}fd|                                D             }	|	d                                         }
t          j        |
d           R|                     |||||           t          j                      ||j        |j        d          }|                     |d !           t          j                     t          j        t0                    5   ||j        |j        d"#           d d d            n# 1 swxY w Y   d$}t3          j        t6          |%          5  |                    dd&'           d d d            d S # 1 swxY w Y   d S )(Nr   r   )_grouped_histi  r"   r4  r%  r   r   r   r5  rR   r6  Xr7  r   rT   rM   r   )r   rotrD   r  r   r   T)r   r   r!   r   r   r   r   r   c                 4    g | ]}t          |          |S r   r   r   s     r   r   zFTestDataFrameGroupByPlots.test_grouped_hist_legacy.<locals>.<listcomp>  s(    NNN1Z95M5MNQNNNr   rP   r   r   )r   r   r   r   rx   )r   r   z$Specify figure size by tuple insteadr'   default)r   r   )r   r    pandas.plotting._matplotlib.histre  r   r<   r=   r>   r   r   r   r4  r6  r\   r   r0   r)   r   ravelr   r   r   r   r   r   r1   r2   r3   )r4   re  rA   r`   r   r   r   r   r#   r   rG   r8   r   s               @r   test_grouped_hist_legacyz2TestDataFrameGroupByPlots.test_grouped_hist_legacyS  s   000000BBBBBBrysA..>>>I""h	   
 
3 )##Aq#..3%#+3}RTbd+++ta???



ww"$wta???



ww#2w&&ta???2...



B
d}Dt

 

 

 **,, 	0 	0BNNNN 1 1NNNE2Y))++F"63////Rdr 	  	
 	
 	
 	


}RTbd555d%000



%n55 	4 	4M"$24U3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 5]:S111 	/ 	/GGsIG...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s$   KKK,LLLc                 R   d}t          t          j                            dd|                    }t          t          j                            dd|                    }t          j                            d                              ddg|          }t          |||d	          }|                    d
          }|                                }t          |          dk    sJ t          | j
                                                  dk    sJ t          j                     d S )Nr      r   r$  <   r3  r   r"   )rG   weightr[   r[   r&   )r   r<   r=   normalr9  choicer   groupbyr)   r?   r.   rl   r   r0   )r4   nrp  rG   
gender_intdf_intgbr`   s           r   test_grouped_hist_legacy2z3TestDataFrameGroupByPlots.test_grouped_hist_legacy2  s    	((bq(99::	((Ra(8899Y**2..55q!f15EE
f*UUVV^^H%%wwyy4yyA~~~~48''))**a////





r   c                 D   |}d}t          j        t          |          5  |                    d|j        d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    d|j        d           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  |                    d|j        d
           d d d            n# 1 swxY w Y   t          j        t          d          5  t          |j        d|j        d          }d d d            n# 1 swxY w Y   | 
                    |dd           t          j        t          d          5  t          |j        d|j        d          }d d d            n# 1 swxY w Y   | 
                    |dd           |                    d|j        d          }| 
                    |dd           |                    d|j        d          }| 
                    |dd           |                    d|j        dd          }| 
                    |ddd           t          j                     t          j        t          d          5  t          |j        ddd          }d d d            n# 1 swxY w Y   | 
                    |dd           t          j        t          d          5  t          |j        d          }d d d            n# 1 swxY w Y   | 
                    |dd           |                    dd          }| 
                    |dd           |                    g d           }| 
                    |dd           d S )!Nz1Layout of 1x1 must be larger than required size 2r'   rp  rD   )r  r   rF   z1Layout of 1x3 must be larger than required size 4rG   r  r   r   Fr   rK   r&   rM   rS   rQ   rR   )rP   r"   rW   )rX   r   )r  r   rF   r   rZ   r^   rT   rO   r   r[   )rO   r    rL   rG   rp  r]   )r  )r1   r2   r3   r)   r[   r]   r   r*   r+   r   r\   r0   )r4   rH   rA   r8   r`   s        r   test_grouped_hist_layoutz2TestDataFrameGroupByPlots.test_grouped_hist_layout  s   A]:S111 	B 	BGG8	&GAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B B]:S111 	D 	DGG8FGCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D B]:S111 	F 	FGG8HGEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 'eLLL 	 	$RYv  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ta???'eLLL 	 	$RYw  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ta???wwh2;vwFFta???wwh2;wwGGta???wwh2;vwwWWtaPPP



 'eLLL 	 	$[  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	ta??? 'eLLL 	> 	>$RW===D	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>ta???ww(6w22ta???ww>>>w??ta?????s}   A

AA2BB #B C..C25C2D>>EE<F&&F*-F*J==KK;LL"%L"c                    |}| j                             dd          \  }}|                    g d|d                   }|                     |dd           t	          j        ||d                    |d         j        |u sJ |                    d|d	         
          }|                     |dd           t	          j        ||d	                    |d         j        |u sJ | j                             dd          \  }}d}t          j        t          |          5  |                    d|          }d d d            d S # 1 swxY w Y   d S )Nr&   rO   rz  r   )r  r#   r  rM   r^   r"   )r   r#   z@The number of passed axes must be 1, the same as the output plotr'   rG   )
r.   r/   r)   r\   r   assert_numpy_array_equalr%   r1   r2   r3   )r4   rH   rA   r5   r`   returnedr8   s          r   test_grouped_hist_multiple_axesz9TestDataFrameGroupByPlots.test_grouped_hist_multiple_axes  s   H%%a++	T77"B"B"BtAw7OOx!FCCC
#Hd1g666{!S((((77kd1g766x!FCCC
#Hd1g666{!S((((H%%a++	TP]:S111 	5 	577(t744D	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s    EE	E	c                    |}|                     d|j        d          \  }}|                     |                              ||          sJ |                     |                              ||          sJ |                     |                              ||          rJ |                     |                              ||          rJ d S )NrG   T)r  r   r   r)   r[   
get_x_axisjoined
get_y_axisr4   rH   rA   r6   r7   s        r   test_axis_share_xz+TestDataFrameGroupByPlots.test_axis_share_x  s    77(ry7FFS s##**344444s##**344444 ??3''..sC88888??3''..sC8888888r   c                    |}|                     d|j        d          \  }}|                     |                              ||          sJ |                     |                              ||          sJ |                     |                              ||          rJ |                     |                              ||          rJ d S )NrG   T)r  r   r   )r)   r[   r  r  r  r  s        r   test_axis_share_yz+TestDataFrameGroupByPlots.test_axis_share_y  s    77(ry7FFS s##**344444s##**344444 ??3''..sC88888??3''..sC8888888r   c                    |}|                     d|j        dd          \  }}|                     |                              ||          sJ |                     |                              ||          sJ |                     |                              ||          sJ |                     |                              ||          sJ d S )NrG   T)r  r   r   r   r  r  s        r   test_axis_share_xyz,TestDataFrameGroupByPlots.test_axis_share_xy  s    77(ryd7SSS s##**344444s##**344444s##**344444s##**34444444r   rv   rw   c                     t          t          j                            ddd          ddg          }|                    d|          }|                     ||	           d S )
Nr"   r   r#  r$  r   r   r%  )r   r~   r   r'  r(  s        r   r   z0TestDataFrameGroupByPlots.test_histtype_argument  se     ry((BX(>>c
SSSWWhW//&&r(&;;;;;r   N)r   r   r   rl  rx  r1   r   r   r{  r  r  r  r  r   r   r   r   r   rc  rc  Q  s        C/ C/ C/J
 
 
 [4@ 4@ 4@l5 5 5(9 9 9
9 
9 
9	5 	5 	5 [	
 	
 	
 < < < < <r   rc  )__doc__r  numpyr<   r1   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   r   pandas._testing_testingr   pandas.tests.plotting.commonr   r   fixturer
   ra  r   r   rc  r   r   r   <module>r     s   # # 				      ) ) ) ) ) ) ) ) )                         ( ( ( I) I) I) I) I)l I) I) I)X eB eB eB eB eB eB eB eBP N< N< N< N< N< N< N< N< N< N<r   