
    o[weE]                        d 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mZmZ ddlmZ ddlmZmZmZmZmZ  ej        d          Z ej        d          Zej        d             Zd Z G d	 d
          Z G d d          ZdS )z$ Test cases for misc plot functions     N)	DataFrameIndexSeries	Timestampinterval_rangeplotting)_check_colors_check_legend_labels_check_plot_works_check_text_labels_check_ticks_props
matplotlibzmatplotlib.cmc                      t          dddgi          } t          j        t          d          5  |                                  d d d            d S # 1 swxY w Y   d S )NA      z#matplotlib is required for plottingmatch)r   pytestraisesImportErrorplot)dfs    ?lib/python3.11/site-packages/pandas/tests/plotting/test_misc.pytest_import_error_messager      s     
C!Q=	!	!B	{*O	P	P	P  
			                 s   AAAc            	         t           j        j        j        } d}t	          j        t          |          5   | dg g i            d d d            n# 1 swxY w Y   d}t	          j        t          |          5   | dt          t                    dd gi            d d d            n# 1 swxY w Y    | dt                      dgd	d
dd          \  }}}}|dk    sJ |d	k    sJ |d
k    sJ |ddik    sJ  | dt          t                    g i           \  }}}}|J |J |dk    sJ t          |          dk    sJ d S )Nz@Called plot accessor for type list, expected Series or DataFramer    )backend_namedataargskwargsz.should not be called with positional arguments)dtypelinexybarF)r%   kindgridr(   zpandas.plotting._matplotlib   )r   _corePlotAccessor_get_call_argsr   r   	TypeErrorr   objectr   len)funcmsgr$   r%   r'   r!   s         r   test_get_accessor_argsr2   &   s1   >&5D
LC	y	,	,	, ; ;"2Br::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;C	y	,	,	, Y Y"6#7#7#7vtnUWXXXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y [[U%77	  Aq$ 888888885====fe_$$$$2&!!!	  Aq$ 9999996>>>>v;;"s#   AAA8%B))B-0B-c                   j    e Zd Zd Zej                            di ddig          d             Zd ZdS )TestSeriesPlotsc                     ddl m} t          j        d          }t          j        d           5  t          ||           t          ||j                    ||d          }d d d            n# 1 swxY w Y   t          |dg           d S )	Nr   )autocorrelation_plottsname)seriesTest)label)labels)pandas.plottingr6   tmmakeTimeSeriesassert_produces_warningr   valuesr
   )selfr6   seraxs       r   test_autocorrelation_plotz)TestSeriesPlots.test_autocorrelation_plotI   s    888888T***'-- 	9 	923????23:FFFF%%c888B		9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9
 	R111111s   5A11A58A5r!   lag   c                 Z    ddl m} t          j        d          }t	          |fd|i| d S )Nr   )lag_plotr7   r8   r:   )r>   rJ   r?   r@   r   )rC   r!   rJ   rD   s       r   test_lag_plotzTestSeriesPlots.test_lag_plotU   sH    ,,,,,,T***(9939&99999    c                 `    ddl m} t          j        d          }t	          ||d           d S )Nr   )bootstrap_plotr7   r8   
   )r:   size)r>   rN   r?   r@   r   )rC   rN   rD   s      r   test_bootstrap_plotz#TestSeriesPlots.test_bootstrap_plot\   sB    222222T***.2>>>>>>rL   N)	__name__
__module____qualname__rF   r   markparametrizerK   rQ    rL   r   r4   r4   H   si        
2 
2 
2 [XUAJ'788: : 98:? ? ? ? ?rL   r4   c                      e Zd Zej                            dddg          d             Zej                            dddg          d             Zej        j        d             Z	ej        j        ej                            ddg d	g          ej                            d
d e
ej                            d                              d          ej                            d                              d          ej                            d                              d          dgdz  d          g          d                                     Zej        j        ej                            d
d e
ej                            d                              d          ej                            d                              d          ej                            d                              d          dgdz  d          g          d                         Zej        j        d             Zej        j        ej                            ddg d	g          d                         Zej        j        d             Zej        j        d             Zej        j        d             Zej                            d          d             Zd Zej                            ddg d	g          d             Zd Zd Zd Zd Zd  Zd! Zd" Z d# Z!d$ Z"d% Z#d& Z$d' Z%ej                            d(d)d*g          d+             Z&d, Z'd- Z(d. Z)d/ Z*d0 Z+d1 Z,d2 Z-d3 Z.d4S )5TestDataFramePlots	pass_axisFTc                 8   t          j        d           t          j        }d }|r#t          j                            dd          \  }}t          t          j	        
                    d                              d                    }t          j        t          d          5  t          ||d|          }d d d            n# 1 swxY w Y   |d	         d	         j                                        }g d
}t%          ||           t'          |dddd	           d S )Nscipy   r   d   r]   Fcheck_stacklevel皙?framerange_paddingrE   r   )z-202   Z   
xlabelsizexrot
ylabelsizeyrotr   importorskipr   scatter_matrixmplpyplotsubplotsr   nprandomdefault_rngstandard_normalr?   rA   UserWarningr   yaxisget_majorticklabelsr   r   	rC   rZ   rq   rE   _r   axesaxes0_labelsexpecteds	            r   test_scatter_matrix_axisz+TestDataFramePlots.test_scatter_matrix_axisd   sS   G$$$!0 	.J''1--EArry,,Q//??IIJJ 'eLLL 	 	$!	  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Awqz';;==###<2224AB11MMMMMMs   "CC	Cc                 Z   t          j        d           t          j        }d }|r#t          j                            dd          \  }}t          t          j	        
                    d                              d                    }|d         dz
  dz  |d<   t          j        t          d          5  t          ||d	|
          }d d d            n# 1 swxY w Y   |d         d         j                                        }g d}t%          ||           t'          |dddd           d S )Nr\   r]      r^   r   r   Fr`   rb   rc   )z-1.0z-0.5z0.0rh   ri   rj   ro   r|   s	            r    test_scatter_matrix_axis_smallerz3TestDataFramePlots.test_scatter_matrix_axis_smaller}   sh   G$$$!0 	.J''1--EArry,,R00@@JJKKAa1 'eLLL 	 	$!	  D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Awqz';;==***<2224AB11MMMMMMs   3CCCc                     ddl m} |}t          j        d           5  t	          ||d           d d d            d S # 1 swxY w Y   d S )Nr   andrews_curvesNamerd   class_column)r>   r   r?   rA   r   )rC   irisr   r   s       r   test_andrews_curves_no_warningz1TestDataFramePlots.test_andrews_curves_no_warning   s    222222'-- 	M 	MnBVLLLL	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M 	M   =AA
linecolors)z#556270z#4ECDC4z#C7F464)
dodgerblue
aquamarineseagreenr   r   r   rO   r   r   BCr   c                     ddl m} t          |t                    r|                    |          }t          ||d|          }t          |                                d d         ||d         d d                    d S )Nr   r   r   rd   r   colorrO   r   mapping)r>   r   
isinstancestrgetfixturevaluer   r	   	get_lines)rC   requestr   r   r   rE   s         r   test_andrews_curves_linecolorsz1TestDataFramePlots.test_andrews_curves_linecolors   s    . 	322222b# 	-((,,B"6
 
 
 	LLNN3B3J6
3B3	
 	
 	
 	
 	
 	
rL   c                 p   ddl m} t          |t                    r|                    |          }d t          j        dd|d                                                   D             }t          ||d|          }t          |
                                d d         ||d         d d                    d S )	Nr   r   c                 B    g | ]}t                               |          S rW   )cmjet).0ns     r   
<listcomp>z?TestDataFramePlots.test_andrews_curves_cmap.<locals>.<listcomp>   s"    LLLqLLLrL   r   r   r   rO   r   )r>   r   r   r   r   ru   linspacenuniquer   r	   r   )rC   r   r   r   cmapsrE   s         r   test_andrews_curves_cmapz+TestDataFramePlots.test_andrews_curves_cmap   s      	322222b# 	-((,,BLLBK1bj6H6H6J6J$K$KLLL"6
 
 
 	bllnnSbS)eRZPSQSPS_UUUUUUrL   c                     ddl m} g d}t          g dg dg d|d          } ||d|          }|                                \  }}t	          ||           d S )	Nr   r   bgrr   r   r]   r   r   r   r   )r>   r   r   get_legend_handles_labelsr	   )rC   r   colorsr   rE   handlesr}   s          r   test_andrews_curves_handlez-TestDataFramePlots.test_andrews_curves_handle   s    222222 YYYYYYYYYPVWWXX^Bf5551133
g&111111rL   r   c                     ddl m} |}t          ||d|          }t          |                                d d         ||d         d d                    d S )Nr   parallel_coordinatesr   r   rO   r   )r>   r   r   r	   r   )rC   r   r   r   r   rE   s         r    test_parallel_coordinates_colorsz3TestDataFramePlots.test_parallel_coordinates_colors   su     	988888 u
 
 
 	bllnnSbS)eRZPSQSPS_UUUUUUrL   c                 <   ddl m ddlm} |}t	          ||dj                  }fdt          j        dd|d                                                   D             }t          |
                                d d         ||d         d d         	           d S )
Nr   r   r   r   rd   r   colormapc                 :    g | ]}                     |          S rW   r   r   r   r   s     r   r   zETestDataFramePlots.test_parallel_coordinates_cmap.<locals>.<listcomp>   #    LLLqLLLrL   r   rO   r   )r   r   r>   r   r   r   ru   r   r   r	   r   )rC   r   r   r   rE   r   r   s         @r   test_parallel_coordinates_cmapz1TestDataFramePlots.test_parallel_coordinates_cmap   s    !!!!!!888888 "&
 
 
 MLLLBK1bj6H6H6J6J$K$KLLLbllnnSbS)eRZPSQSPS_UUUUUUrL   c                 B   ddl m} |}t          ||d          }t          |                                          }t          |j                                                  }t          ||dd          }t          |                                          ||z
  k    sJ d S )Nr   r   r   r   F)rd   r   axvlines)r>   r   r   r/   r   xaxisget_ticklabels)rC   r   r   r   rE   nlinesnxtickss          r   #test_parallel_coordinates_line_diffz6TestDataFramePlots.test_parallel_coordinates_line_diff  s    88888832FSSSR\\^^$$bh--//00 %
 
 
 2<<>>""v'7888888rL   c                     ddl m} |}g d}t          g dg dg d|d          } ||d|          }|                                \  }}t	          ||           d S )	Nr   r   r   r   r   r   r   r   )r>   r   r   r   r	   )rC   r   r   r   r   rE   r   r}   s           r   !test_parallel_coordinates_handlesz4TestDataFramePlots.test_parallel_coordinates_handles  s    888888 YYYYYYYYYPVWWXX!!"fF;;;1133
g&111111rL   z$ignore:Attempting to set:UserWarningc                 r   ddl m} t          t          t	          d                    d t	          d          D             d t	          d          D             z   d t	          d          D             z   d          } ||d	d
          }|                                \  }}t          d |D             |          }t          |d           }t          t          |dd                   t          |dd                             }|D ]+\  }	}
|	d         |
d         k     r|	d         |
d         k     sJ ,dS )z
For #15908r   r      c                     g | ]}d S )r   rW   r   r}   s     r   r   zSTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<listcomp>%  s    ///!///rL   rO   c                     g | ]}d S )r]   rW   r   s     r   r   zSTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<listcomp>&      (((1(((rL   c                     g | ]}d S )r   rW   r   s     r   r   zSTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<listcomp>'  r   rL   )featclassr   T)sort_labelsc                 6    g | ]}|                                 S rW   	get_color)r   polylines     r   r   zSTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<listcomp>-  s$    <<<hX!!<<<rL   c                     | d         S )Nr   rW   )r$   s    r   <lambda>zQTestDataFramePlots.test_parallel_coordinates_with_sorted_labels.<locals>.<lambda>/  s    aPQd rL   )keyr   N)r>   r   r   listranger   zipsorted)rC   r   r   rE   	polylinesr=   color_label_tuplesordered_color_label_tuplesprev_next_tupelsprevnxts              r   ,test_parallel_coordinates_with_sorted_labelsz?TestDataFramePlots.test_parallel_coordinates_with_sorted_labels  s    	988888U2YY//U2YY///((eBii((()((eBii((() 
 
 "!"g4@@@88::	6 <<)<<<f
 
 &,,>NN%S%S%S"+AbD122D9STUTVTV9W4X4X
 
 * 	9 	9ID#7SV##Q#a&(8(8(8(8(8	9 	9rL   c                     ddl m} |}t          j        d           5  t	          ||d           d d d            d S # 1 swxY w Y   d S )Nr   radvizr   r   )r>   r   r?   rA   r   )rC   r   r   r   s       r   test_radviz_no_warningz)TestDataFramePlots.test_radviz_no_warning7  s    ******'-- 	E 	EfBVDDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Er   c                     ddl m} |}t          ||d|          }d |j        d d         D             }t	          |d d         ||d         d d                    d S )	Nr   r   r   r   c                 B    g | ]}|                                 d k    |S r   	get_labelr   ps     r   r   z8TestDataFramePlots.test_radviz_color.<locals>.<listcomp>I  *    EEE"1D1D11D1D1DrL      rO   
facecolorsr   )r>   r   r   patchesr	   )rC   r   r   r   r   rE   r   s          r   test_radviz_colorz$TestDataFramePlots.test_radviz_color?  s}    
 	+*****vRfERRREEbj"oEEEgcrclubj"oNNNNNNrL   c                 :   ddl m ddlm} |}t	          ||dj                  }fdt          j        dd|d                                                   D             }d |j	        d d	         D             }t          |||d         d d
                    d S )Nr   r   r   r   r   c                 :    g | ]}                     |          S rW   r   r   s     r   r   z=TestDataFramePlots.test_radviz_color_cmap.<locals>.<listcomp>S  r   rL   r   c                 B    g | ]}|                                 d k    |S r   r   r   s     r   r   z=TestDataFramePlots.test_radviz_color_cmap.<locals>.<listcomp>T  r   rL   r   rO   r   )r   r   r>   r   r   r   ru   r   r   r   r	   )rC   r   r   r   rE   r   r   r   s          @r   test_radviz_color_cmapz)TestDataFramePlots.test_radviz_color_cmapL  s    !!!!!!******vRfrvVVVLLLLBK1bj6H6H6J6J$K$KLLLEEbj"oEEEg%FCRCIIIIIIrL   c                     ddl m} g dg dg dg}t          g dg dg dg d	d
          } ||d|          }|                                \  }}t	          ||           d S )Nr   r   )        r         ?r  )r         ?r  r  )r  r   r   r  r   )r   r   r]   )r]   r   r   r   r   r   r   )r   )r>   r   r   r   r	   )rC   r   r   r   rE   r   r}   s          r   test_radviz_colors_handlesz-TestDataFramePlots.test_radviz_colors_handlesW  s    ******&&&(<(<(<>R>R>RS))))))))___UU
 
 VBf---1133
g&111111rL   c                     |                     dd                                          }t          |j                  }|                    d|          }d |D             |k    sJ d S )Nr   r   axisTrt   titlec                 6    g | ]}|                                 S rW   	get_titler   s     r   r   z:TestDataFramePlots.test_subplot_titles.<locals>.<listcomp>i  s     ,,,!,,,rL   dropheadr   columnsr   )rC   r   r   r  r   s        r   test_subplot_titlesz&TestDataFramePlots.test_subplot_titlesb  sn    YYvAY&&++--RZ   wwEw22,,t,,,555555rL   c                 "   |                     dd                                          }t          |j                  }d}t	          j        t          |          5  |                    d|dgz              d d d            d S # 1 swxY w Y   d S )	Nr   r   r  jThe length of `title` must equal the number of columns if using `title` of type `list` and `subplots=True`r   Tzkittens > puppiesr  r  r  r   r  r   r   
ValueErrorr   rC   r   r   r  r1   s        r   test_subplot_titles_too_muchz/TestDataFramePlots.test_subplot_titles_too_muchk  s    YYvAY&&++--RZ  ? 	 ]:S111 	H 	HGGT2E1F)FGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   BBBc                 *   |                     dd                                          }t          |j                  }d}t	          j        t          |          5  |                    d|d d                    d d d            d S # 1 swxY w Y   d S )	Nr   r   r  r  r   Tr   r  r  r  s        r   test_subplot_titles_too_littlez1TestDataFramePlots.test_subplot_titles_too_littlew  s    YYvAY&&++--RZ  ? 	
 ]:S111 	4 	4GGTrrG333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s    BBBc                    |                     dd                                          }t          |j                  }d}t	          j        t          |          5  |                    d|           d d d            d S # 1 swxY w Y   d S )Nr   r   r  zNUsing `title` of type `list` is not supported unless `subplots=True` is passedr   Fr  r  r  s        r   "test_subplot_titles_subplots_falsez5TestDataFramePlots.test_subplot_titles_subplots_false  s    YYvAY&&++--RZ  ( 	 ]:S111 	1 	1GGU%G000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   B  BBc                 *   |                     dd                                          }t          |j                  }|                     dd                              dd|d d                   }d	 |D             }||d d
         dgz   k    sJ d S )Nr   r   r  
SepalWidthTr   r   r   )rt   layoutr  c                 @    g | ]}|D ]}|                                 S rW   r
  )r   sublistrE   s      r   r   zPTestDataFramePlots.test_subplot_titles_numeric_square_layout.<locals>.<listcomp>  s-    KKK7KKRbllnnKKKKrL   r]   r   r  )rC   r   r   r  r   
title_lists         r   )test_subplot_titles_numeric_square_layoutz<TestDataFramePlots.test_subplot_titles_numeric_square_layout  s    YYvAY&&++--RZ  ww|!w,,11&crc
 2 
 
 LKDKKK
U2A2Y"-------rL   c                 p   t          t          j        d                    }t          j        |d           t          j                            d                                           }t          j        |d           t          j                            d                                           }||k    sJ d S )N)rO   rO   r   )r   ru   zerosr   r   rv   rw   )rC   r   rand1rand2s       r   $test_get_standard_colors_random_seedz7TestDataFramePlots.test_get_standard_colors_random_seed  s    rx))** 	%b!,,,	%%d++2244%b!,,,	%%d++2244~~~~~~rL   c                 V    ddl m}  |dd          } |dd          }||k    sJ d S )Nr   get_standard_colorsr   rv   
color_type)!pandas.plotting._matplotlib.styler*  )rC   r*  color1color2s       r   $test_get_standard_colors_consistencyz7TestDataFramePlots.test_get_standard_colors_consistency  sX     	JIIIII$$Q8<<<$$Q8<<<rL   c                     ddl m}  |dd          } |dd          } |dd          }t          |          dk    sJ t          |          dk    sJ t          |          dk    sJ d S )Nr   r)  r   defaultr+  	   r   )r-  r*  r/   )rC   r*  r.  r/  color3s        r   +test_get_standard_colors_default_num_colorsz>TestDataFramePlots.test_get_standard_colors_default_num_colors  s    IIIIII %$Q9===$$Q9===$$RI>>>6{{a6{{a6{{b      rL   c           	      2   t          g dg dg dg dg dg dd          }|j                                        j                                        }d |                                d	d
         D             t          fdD                       sJ d S )N)z
2017-02-03z
2017-03-03z
2017-01-01)zAlice Andersz	Bob BakerzCharlie Chaplin)gzGag\($@g     L@)i  ix	     )  i  i	  )4   r8      )zaccount-startclientbalancezdb-idzproxy-idrankc                 6    g | ]}|                                 S rW   get_facecolorr   rects     r   r   z=TestDataFramePlots.test_plot_single_color.<locals>.<listcomp>  s$    JJJ4$$$&&JJJrL   r   r]   c              3   0   K   | ]}|d          k    V  dS )r   NrW   )r   r   r   s     r   	<genexpr>z<TestDataFramePlots.test_plot_single_color.<locals>.<genexpr>  s,      ::%5F1I%::::::rL   )r   r;  value_countsr   r&   get_childrenall)rC   r   rE   r   s      @r   test_plot_single_colorz)TestDataFramePlots.test_plot_single_color  s    !K!K!KJJJ666***---% 	
 	
 Y##%%*..00JJ2??3D3DQqS3IJJJ::::6::::::::::rL   c                 t   ddl m} ddlm} |                    t          d                    } |d|          }t          |          t          |          k    sJ t          t          j	        
                    d                              d          t          d	          
          }|                    t          j        ddd                    }|j        j                            d|          }|j        d                                         |j        d                                         k    sJ d S )Nr   r   r)  rH   r   r   r   )0      ABCDr     )rN     )figsizer      )r   r   r-  r*  gnuplotr   r/   r   ru   rv   rw   rx   r   r   r   r   r&   r   r@  )rC   r   r*  color_beforecolor_afterr   
color_listr   s           r   %test_get_standard_colors_no_appendingz8TestDataFramePlots.test_get_standard_colors_no_appending  s'   
 	"!!!!!IIIIIIzz%((++))!<@@@;3|#4#44444I!!!$$44W==tF||
 
 
 ZZAq" 5 566
DIMM'M<<y|))++qy}/J/J/L/LLLLLLLrL   r'   r&   r#   c                    ddg}ddgt          t          j                            d                              d          |          }ddd}|                    ||	          }|d
k    r(d |                                ddd         D             }n&d |                                dd         D             }t          fdt          |          D                       sJ d S )Nar   )r  gQ?g333333?)g333333?ffffff?rY  r   r  rM  )r   rX  )r'   r   r&   c                 F    g | ]}|                                 d d         S )r   r   r?  rA  s     r   r   z<TestDataFramePlots.test_dictionary_color.<locals>.<listcomp>  s-    VVVTd((**1R40VVVrL   r   r]   c                 6    g | ]}|                                 S rW   r   rA  s     r   r   z<TestDataFramePlots.test_dictionary_color.<locals>.<listcomp>  s"    GGG4dnn&&GGGrL   c              3   6   K   | ]\  }}||         k    V  d S NrW   )r   indexr   r   s      r   rD  z;TestDataFramePlots.test_dictionary_color.<locals>.<genexpr>  s0      RRu5HUO+RRRRRRrL   )	r   ru   rv   rw   r   rF  r   rG  	enumerate)rC   r'   
data_filesdf1	dic_colorrE   r   r   s          @r   test_dictionary_colorz(TestDataFramePlots.test_dictionary_color  s     3Z
$o6	--a0077??TTT)0@AA	XX4yX115==VVR__=N=NqQRSTu=UVVVFFGG2<<>>!A#3FGGGFRRRR	&@Q@QRRRRRRRRRRrL   c                 6   ddl m}  |ddd           |ddd          g}t          dddgit          ddg                    }|j                                        }t          d	 t          |                                |          D                       sJ d S )
Nr   Textrf   r   TotalrX  r   r^  c              3   p   K   | ]1\  }}|                                 |                                 k    V  2d S r]  get_textr   rX  r   s      r   rD  z3TestDataFramePlots.test_bar_plot.<locals>.<genexpr>  O       
 
1 ZZ\\QZZ\\)
 
 
 
 
 
rL   )	matplotlib.textrf  r   r   r   r&   rG  r   get_xticklabels)rC   rf  r   r   plot_bars        r   test_bar_plotz TestDataFramePlots.test_bar_plot  s     	)(((((DAsOOTT!Q%8%89aV G%%	
 
 
 7;;== 
 
H4466AA
 
 
 
 
 	
 	
 	
 	
 	
rL   c                 "   ddl m} t          ddddddg          }|j                            dd           } |ddd	           |ddd          g}t          d
 t          |                                |          D                       sJ d S )Nr   re  r   )wordvalueknowledgr   rs  )r$   legend1c              3   p   K   | ]1\  }}|                                 |                                 k    V  2d S r]  rj  )r   actualr   s      r   rD  zPTestDataFramePlots.test_barh_plot_labels_mixed_integer_string.<locals>.<genexpr>  sU       
 
  OO!2!2!4!44
 
 
 
 
 
rL   )rn  rf  r   r   barhrG  r   get_yticklabels)rC   rf  r   	plot_barhexpected_yticklabelss        r   *test_barh_plot_labels_mixed_integer_stringz=TestDataFramePlots.test_barh_plot_labels_mixed_integer_string  s     	)(((((Q//*q1Q1QRSSGLL6$L77	 $Q3aJ1G1GH 
 
$'))++-A% %
 
 
 
 
 	
 	
 	
 	
 	
rL   c                    t           j        j        j        }t          j                                        }|                    dd          }|                    d|d         d                   |d         d<   |                    d|d         d                   |d         d<   |d         d         	                                 |d         d         	                                  ||d         d         d          sJ  ||d         d         d          rJ  ||d         d         d          sJ  ||d         d	         d          rJ d S )
Nr   rK     r   r   sharex   r$   r]   )
r   _matplotlibtools_has_externally_shared_axisrr   rs   figurert   add_subplottwinxrC   r0   figplotss       r   &test_has_externally_shared_axis_x_axisz9TestDataFramePlots.test_has_externally_shared_axis_x_axis  B    #)Ej!!Q"" ooc%(1+o>>aooc%(1+o>>a 	aa tE!HQK%%%%%4aS)))))tE!HQK%%%%%4aS)))))))rL   c                    t           j        j        j        }t          j                                        }|                    dd          }|                    d|d         d                   |d         d<   |                    d|d         d                   |d         d<   |d         d         	                                 |d         d         	                                  ||d         d         d          sJ  ||d         d         d          rJ  ||d         d         d          sJ  ||d	         d         d          rJ d S )
NrK  r   A  r   r   shareyiE  r%   r]   )
r   r  r  r  rr   rs   r  rt   r  twinyr  s       r   &test_has_externally_shared_axis_y_axisz9TestDataFramePlots.test_has_externally_shared_axis_y_axis+  r  rL   c                    t           j        j        j        }t          j                                        }|                    dd          }|                    d|d         d                   |d         d<   d}t          j
        t          |          5   ||d         d         d	           d d d            d S # 1 swxY w Y   d S )
NrK  r   r  r   r   r  z&needs 'x' or 'y' as a second parameterr   z)r   r  r  r  rr   rs   r  rt   r  r   r   r  )rC   r0   r  r  r1   s        r   4test_has_externally_shared_axis_invalid_compare_axiszGTestDataFramePlots.test_has_externally_shared_axis_invalid_compare_axisD  s     #)Ej!!Q"" ooc%(1+o>>a 7]:S111 	# 	#Dq!c"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   B::B>B>c                    t          t          j                            d                              d          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                              d           |d
                             |d         d                    |d
                             |d         d         d                              d           |d
                             |d         d                    |d                             |d           |d                             |d           |d         d         j                                                                        rJ |d         d         j                                                                        sJ |d         d         j                                                                        rJ d S )Nr   i  )rX  r   r]   r  r   r   r  r  rX  zExternal share only)rE   r  z"this label should never be visible)rE   zInternal share (twin) onlyz#this label should always be visibleBothr   green)rE   r   yellow)r   ru   rv   rw   rx   rr   rs   r  rt   r  r  r   
set_xlabelr   r   get_visible)rC   r   r  r  twin_ax1twin_ax2s         r   test_externally_shared_axesz.TestDataFramePlots.test_externally_shared_axesU  s    Y**1--==dCCY**1--==dCC 
 
 j!!Q"" ooc%(1+o>>aooc%(1+o>>a 8A;$$&&8A;$$&& 	3a+@AALL0	
 	
 	
 	3a$$$
3a+GHHSS1	
 	
 	
 	3a$$$
3a622==0	
 	
 	
 	3a$$$ 	3000
31118A;$..00<<>>>>>Qx{ **,,88:::::8A;$..00<<>>>>>>>rL   c                     t          dgt          d          g          }t          |j                   t	          ddi          }t          |j        j                   d S )Nr  z2022-02-22 22:22:22rh  r   )r   r   r   r   r   r&   )rC   r   ss      r   -test_plot_bar_axis_units_timestamp_conversionz@TestDataFramePlots.test_plot_bar_axis_units_timestamp_conversion  sg     E2334
 
 
 	"'"""C:!&*%%%%%rL   c                 d   ddl m}  |ddd           |ddd          g}t          ddgt          ddd          g	          }t	          |j        j                   t          d
 t          |j                                        	                                |          D                       sJ d S )Nr   re  z	([0, 1],)r   z	([1, 2],)r   both)closedrh  c              3   p   K   | ]1\  }}|                                 |                                 k    V  2d S r]  rj  rl  s      r   rD  zFTestDataFramePlots.test_bar_plt_xaxis_intervalrange.<locals>.<genexpr>  rm  rL   )
rn  rf  r   r   r   r   r&   rG  r   ro  )rC   rf  r   r  s       r    test_bar_plt_xaxis_intervalrangez3TestDataFramePlots.test_bar_plt_xaxis_intervalrange  s     	)(((((DA{++TT!Q-D-DEF!!Qv6667
 
 
 	!&*%%% 
 
AFJJLL88::HEE
 
 
 
 
 	
 	
 	
 	
 	
rL   N)/rR   rS   rT   r   rU   rV   r   r   slowr   r   ru   rv   rw   rx   r   r   r   r   r   r   r   filterwarningsr   r   r   r   r  r  r  r  r  r"  r'  r0  r5  rH  rV  rc  rq  r~  r  r  r  r  r  r  rW   rL   r   rY   rY   c   sD       [[5$-88N N 98N0 [[5$-88N N 98N0 [M M M [[-444	
  [I..q11AA"EE..q11AA"EE..q11AA"EE EBJ	  
	
 

 

   ,

 [[I..q11AA"EE..q11AA"EE..q11AA"EE EBJ	  
	
 	V 	V  	V [2 2 2 [[	*,T,T,TU V V	  
V [V V V [9 9 9 [2 2 2 [ FGG9 9 HG92E E E [	*,T,T,TU O O	 O	J 	J 	J	2 	2 	26 6 6
H 
H 
H
4 
4 
4
1 
1 
1	. 	. 	.	 	 	     	! 	! 	!; ; ; M M M* [VeV_55S S 65S"
 
 
&
 
 
* * *2* * *2# # #".? .? .?`
& 
& 
&
 
 
 
 
rL   rY   ) __doc__numpyru   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   r   r   r   pandas._testing_testingr?   pandas.tests.plotting.commonr	   r
   r   r   r   rp   rr   r   skip_if_mplr   r2   r4   rY   rW   rL   r   <module>r     s   * *      ) ) ) ) ) ) ) ) )                                   f,''V))     D? ? ? ? ? ? ? ?6|
 |
 |
 |
 |
 |
 |
 |
 |
 |
rL   