gL iqb dZddlZddlZddlZddlmcmZddl m Z m Z m Z m Z mZmZmZmZmZddlmZddlmZmZmZmZmZej8dZej8dZej8dZej@de fd Z!ejDdd Z#d Z$ejJjMd ejNjPejJjMd e ejRdjUdde e+dgejJjMde e+deddeddgdZ,GddZ-GddZ.y)z$ Test cases for misc plot functions N) DataFrameIndexSeries Timestamp date_rangeinterval_range period_rangeplottingread_csv) _check_colors_check_legend_labels_check_plot_works_check_text_labels_check_ticks_props matplotlibzmatplotlib.pyplotz matplotlib.cmreturnc*t|ddddS)z* The iris dataset as a DataFrame. iodatacsvziris.csv)r )datapaths e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/plotting/test_misc.pyirisr"s HT65*= >>ctdddgi}tjtd5|j dddy#1swYyxYw)NAz#matplotlib is required for plottingmatch)rpytestraises ImportErrorplot)dfs rtest_import_error_messager&*sC C!Q= !B {*O P  s AAc Xtjjj}d}t j t |5|dggidddd}t j t |5|dttddgiddd|dtdgd d d d \}}}}|dk(sJ|d k(sJ|d k(sJ|d d ik(sJ|dttgi\}}}}|J|J|dk(sJt|dk(sJy#1swYxYw#1swYxYw)Nz@Called plot accessor for type list, expected Series or DataFramer) backend_namerargskwargsz.should not be called with positional argumentsdtypelinexybarF)r0kindgridr3zpandas.plotting._matplotlib) r _core PlotAccessor_get_call_argsr!r" TypeErrorrobjectrlen)funcmsgr/r0r2r+s rtest_get_accessor_argsr=3sM >> & & 5 5D LC y ,; "2Br:; ;C y ,Y "6#7vtnUWXY [U%7 Aq$ 8O8 8O8 5== fe_ $$ $2 & !  Aq$ 99 99 6>> v;"  7;;YYs D4D D D)r2rindex 2020-01-01periodsctj\}}||_i}|dvr-t|trt j |dddd}|jd||d||jtjy)N)hexbinscatterpiez not supported with Seriesrr)r/r0)r2ax) pltsubplotsrA isinstancerr!skipr$savefigosdevnull)r2rrAfigrIr+s r test_savefigrSUsxllnGCDJ F ++ dF # KK4& :; <q! DII)4B)&)KK rcdeZdZdZej j diddigdZdZy)TestSeriesPlotscTddlm}ttjdtj t ddd}tjd5t|| t||j ||d }dddtd g y#1swYxYw) Nr)autocorrelation_plot r,rBrCtsrAname)seriesTest)label)labels) pandas.plottingrWrnparangefloat64rtmassert_produces_warningrvaluesr )selfrWserrIs rtest_autocorrelation_plotz)TestSeriesPlots.test_autocorrelation_plotns8 IIb +\26   ' ' - 9 23 ? 23:: F%c8B  9 R1  9 9s /BB'r+lagr?cddlm}ttjdtj t ddd}t|fd |i|y) Nr)lag_plotrXr,rBrCrYrZr\)r`rlrrarbrcrr)rgr+rlrhs r test_lag_plotzTestSeriesPlots.test_lag_plot~sB, IIb +\26  (939&9rcddlm}ttjdtj t ddd}t||d y) Nr)bootstrap_plotrXr,rBrCrYrZ)r\size)r`rorrarbrcrr)rgrorhs rtest_bootstrap_plotz#TestSeriesPlots.test_bootstrap_plots<2 IIb +\26  .2>rN) __name__ __module__ __qualname__rir!mark parametrizermrqrJrrrUrUms:2  [[XUAJ'78:9:?rrUc eZdZejj dddgdZejj dddgdZejjdZ ejjejj ddgd gejj d d e e jjd jd e jjd jd e jjd jd dgd zdgdZejjejj d d e e jjd jd e jjd jd e jjd jd dgd zdgdZejjdZejjejj ddgd gdZejjdZejjdZejjdZejj-ddZdZejj ddgd gdZdZdZdZdZd Zd!Zd"Z d#Z!d$Z"d%Z#d&Z$d'Z%ejj d(d)d*gd+Z&d,Z'd-Z(d.Z)d/Z*d0Z+d1Z,d2Z-d3Z.y4)5TestDataFramePlots pass_axisFTctjdtj}d}|r#tj j dd\}}ttjjdjd}tjtd5t||d|}dddd d j j#}gd }t%||t'|d d d d y#1swYJxYw)Nscipyr@rdr@Fcheck_stacklevel皙?frame range_paddingrIr)z-202Z xlabelsizexrot ylabelsizeyrotr! importorskipr scatter_matrixmplpyplotrLrrarandom default_rngstandard_normalrdre UserWarningryaxisget_majorticklabelsrr rgryrrI_r%axes axes0_labelsexpecteds rtest_scatter_matrix_axisz+TestDataFramePlots.test_scatter_matrix_axissG$!00  JJ''1-EAr ryy,,Q/??I J ' ' e L $! D Awqz'';;= #<24AB11M  s C88Dc$tjdtj}d}|r#tj j dd\}}ttjjdjd}|ddz dz |d<tjtd5t||d | }dddddj j#}gd }t%||t'|d d d dy#1swYJxYw)Nr{r@ r|rrFr~rr)z-1.0z-0.5z0.0rrrrrs r test_scatter_matrix_axis_smallerz3TestDataFramePlots.test_scatter_matrix_axis_smallersG$!00  JJ''1-EAr ryy,,R0@@J KAa1 ' ' e L $! D Awqz'';;= *<24AB11M  s -DDcddlm}|}tjd5t ||ddddy#1swYyxYw)Nrandrews_curvesNamer class_column)r`rrdrer)rgrrr%s rtest_andrews_curves_no_warningz1TestDataFramePlots.test_andrews_curves_no_warnings=2   ' ' - M nBV L M M M6? linecolors)z#556270z#4ECDC4z#C7F464) dodgerblue aquamarineseagreenr%rrrXrrBCrcddlm}t|tr|j |}t ||d|}t |jdd||dddy)NrrrrrcolorrXrmapping)r`rrMstrgetfixturevaluerr get_lines)rgrequestr%rrrIs rtest_andrews_curves_linecolorsz1TestDataFramePlots.test_andrews_curves_linecolorss\. 3 b# ((,B  "6   LLN3B J6 3B rcTddlm}t|tr|j |}t j dd|djDcgc]}tj|}}t||d|}t|jdd||dddycc}w)NrrrrrrXr) r`rrMrrralinspacenuniquecmjetrr r)rgrr%rncmapsrIs rtest_andrews_curves_cmapz+TestDataFramePlots.test_andrews_curves_cmaps 3 b# ((,B$&KK1bj6H6H6J$KLqLL  "6  bllnSb)eRZPSQS_U MsB%cddlm}gd}tgdgdgd|d}||d|}|j\}}t ||y) Nrrbgrrrr@rrrr)r`rrget_legend_handles_labelsr )rgrcolorsr%rIhandlesrs rtest_andrews_curves_handlez-TestDataFramePlots.test_andrews_curves_handle sH2  YYYPVW X Bf 5113 g&1rrc|ddlm}|}t||d|}t|j dd||dddy)Nrparallel_coordinatesrrrXr)r`rrr r)rgrrrr%rIs r test_parallel_coordinates_colorsz3TestDataFramePlots.test_parallel_coordinates_colorssF 9   u  bllnSb)eRZPSQS_Urc.ddlm}ddlm}|}t ||d|j }t jdd|djDcgc]}|j |}}t|jdd||dddycc}w) NrrrrrrcolormaprrXr) rrr`rrrrarrr r)rgrrrr%rIrrs rtest_parallel_coordinates_cmapz1TestDataFramePlots.test_parallel_coordinates_cmap%s!8   "&& %'KK1bj6H6H6J$KLqLLbllnSb)eRZPSQS_UMsBcddlm}|}t||d}t|j }t|j j }t||dd}t|j ||z k(sJy)NrrrrF)rraxvlines)r`rrr:rxaxisget_ticklabels)rgrrr%rInlinesnxtickss r#test_parallel_coordinates_line_diffz6TestDataFramePlots.test_parallel_coordinates_line_diff3ss8  32F SR\\^$bhh--/0  % 2<<>"v'7888rcddlm}|}gd}tgdgdgd|d}||d|}|j\}}t ||y) Nrrrrrrrr)r`rrrr )rgrrr%rrIrrs r!test_parallel_coordinates_handlesz4TestDataFramePlots.test_parallel_coordinates_handlesBsM8   YYYPVW X !"fF ;113 g&1rz$ignore:Attempting to set:UserWarningcBddlm}ttt dt dDcgc]}dc}t dDcgc]}dc}zt dDcgc]}dc}zd}||d d }|j \}}t |Dcgc]}|jc}|}t|d } t t| ddt| dd} | D]\} } | d| dkr | d| dkrJycc}wcc}wcc}wcc}w)z For #15908rrrXrr@r)featclassrT) sort_labelsc |dS)NrrJ)r/s rzQTestDataFramePlots.test_parallel_coordinates_with_sorted_labels..`s aPQdr)keyN) r`rrlistrangerzip get_colorsorted) rgrrr%rI polylinesr_polylinecolor_label_tuplesordered_color_label_tuplesprev_next_tupelsprevnxts r,test_parallel_coordinates_with_sorted_labelsz?TestDataFramePlots.test_parallel_coordinates_with_sorted_labelsNs. 9 U2Y%*2Y/!/#Bi(1()#Bi(1()  ""g4 @88: 6 2; N%S" +Ab1 2D9STUTV9W4X * 9ID#7SV#Q#a&(8 88 90(( =s D  D  D Dcddlm}|}tjd5t ||ddddy#1swYyxYw)Nrradvizrr)r`rrdrer)rgrrr%s rtest_radviz_no_warningz)TestDataFramePlots.test_radviz_no_warninghs=*   ' ' - E fBV D E E Ercddlm}|}t||d|}|jddDcgc]}|j dk7s|}}t |dd||dddycc}w) Nrrrrr(rX facecolorsr)r`rrpatches get_labelr )rgrrrr%rIprs rtest_radviz_colorz$TestDataFramePlots.test_radviz_colorpsh +  vRfE R jj"oE"1D1EEgcrlubj"oNFs A A cvddlm}ddlm}|}t ||d|j }t jdd|djDcgc]}|j |}}|jddDcgc]}|jdk7s|} }t| ||ddd  ycc}wcc}w) Nrrrrrrrr(rXr) rrr`rrrrarrrrr ) rgrrrr%rIrrrrs rtest_radviz_color_cmapz)TestDataFramePlots.test_radviz_color_cmap}s!*  vRfrvv V$&KK1bj6H6H6J$KLqLL jj"oE"1D1EEg%FCRIMEsB1=B6B6cddlm}gdgdgdg}tgdgdgdgd d }||d | }|j\}}t || y)Nrr)r?r)r?rr)rrrrr)rrr@)r@rrrrrr)r)r`rrrr )rgrrr%rIrrs rtest_radviz_colors_handlesz-TestDataFramePlots.test_radviz_colors_handlessU*&(<>RS ))_ U Bf -113 g&1rc|jddj}t|j}|j d|}|Dcgc]}|j c}|k(sJycc}w)NrraxisTrLtitledropheadrcolumnsr$ get_title)rgrr%r r$rs rtest_subplot_titlesz&TestDataFramePlots.test_subplot_titlessa YYvAY & + + -RZZ wwEw2'+,! ,555,sA.c|jddj}t|j}d}t j t |5|jd|dgzdddy#1swYyxYw) Nrrr jThe length of `title` must equal the number of columns if using `title` of type `list` and `subplots=True`rTzkittens > puppiesr rrrrr!r" ValueErrorr$rgrr%r r<s rtest_subplot_titles_too_muchz/TestDataFramePlots.test_subplot_titles_too_muchsw YYvAY & + + -RZZ  ? ]]:S 1 H GGT2E1F)FG G H H Hs A55A>c|jddj}t|j}d}t j t |5|jd|dddddy#1swYyxYw) Nrrr rrTrr rrs rtest_subplot_titles_too_littlez1TestDataFramePlots.test_subplot_titles_too_littlesp YYvAY & + + -RZZ  ? ]]:S 1 4 GGTrG 3 4 4 4s A44A=c|jddj}t|j}d}t j t |5|jd|dddy#1swYyxYw)Nrrr zNUsing `title` of type `list` is not supported unless `subplots=True` is passedrFr rrs r"test_subplot_titles_subplots_falsez5TestDataFramePlots.test_subplot_titles_subplots_falsesj YYvAY & + + -RZZ  ( ]]:S 1 1 GGU%G 0 1 1 1s A11A:c4|jddj}t|j}|jddj dd|dd}|Dcgc]}|D]}|j }}}||dd d gzk(sJycc}}w) Nrrr  SepalWidthTrrr)rLlayoutr r@r(r)rgrr%r r$sublistrI title_lists r)test_subplot_titles_numeric_square_layoutzTestDataFramePlots.test_get_standard_colors_default_num_colorssaI%Q9=$Q9=$RI>6{a6{a6{b   rc :tgdgdgdgdgdgdd}|jjjj }|j dd Dcgc]}|j c}tfd DsJycc}w) N)z 2017-02-03z 2017-03-03z 2017-01-01)z Alice Andersz Bob BakerzCharlie Chaplin)gzGag\($@gL@)iix ) ii )4r: )z account-startclientbalancezdb-idzproxy-idrankrr@c3.K|] }|dk(yw)rNrJ).0rrs r z.s:%5F1I%:s)rr= value_countsr$r1 get_children get_facecolorall)rgr%rIrectrs @rtest_plot_single_colorz)TestDataFramePlots.test_plot_single_colors !KJ6*-%    YY # # % * * . . 035??3DQq3IJ4$$$&J:6::::Ks'Bc.ddlm}ddlm}|j t d}|d|}t |t |k(sJttjjdjdtd  }|j tjddd }|jjj!d | }|j"dj%|j"dj%k(sJy)Nrrr+r?rrr)0ABCDr)rN)figsizer)rrr/r,gnuplotrr:rrarrrrrrr$r1rrE)rgrr, color_before color_afterr% color_listrs r%test_get_standard_colors_no_appendingz8TestDataFramePlots.test_get_standard_colors_no_appendings "Izz%(+ )!<@ ;3|#4444  II ! !! $ 4 4W =tF| ZZ Aq" 56 DDIIMM'M <yy|))+qyy}/J/J/LLLLrr2r1r.cddg}ddgttjjdjd|}ddd}|j || }|d k(r5|j d d dDcgc]}|j d d }}n.|jd dDcgc]}|j}}tfdt|DsJycc}wcc}w)Nar)rgQ?g333333?)g333333?ffffff?rYrr rM)rrX)r2rr1rr@rc34K|]\}}||k(ywNrJ)rArArrs rrBz;TestDataFramePlots.test_dictionary_color..sR u5HUO+Rs) rrarrr$rDrErrrF enumerate) rgr2 data_filesdf1 dic_colorrIrGrrs @rtest_dictionary_colorz(TestDataFramePlots.test_dictionary_colors3Z $o6 --a077?T)0@A XX4yX 1 5==?__=NqQRSTu=UVTd((*1R0VFV35<<>!A3FG4dnn&GFGR &@QRRRRWGs 8C#*C(cddlm}|ddd|dddg}tdddgitddg}|jj }t d t|j|DsJy) NrTextrrTotalrXrrAc3dK|](\}}|j|jk(*ywr[get_textrArXrs rrBz3TestDataFramePlots.test_bar_plot../- 1ZZ\QZZ\ ) .0) matplotlib.textrcrrr$r1rFrget_xticklabels)rgrcrr%plot_bars r test_bar_plotz TestDataFramePlots.test_bar_plot!s )AsOT!Q%89 aV G %   77;;= H446A    rcddlm}tddddddg}|jj dd}|ddd |dddg}t d t |j|DsJy) Nrrbr)wordvalue knowledgerrq)r/legend1c3dK|](\}}|j|jk(*ywr[rg)rAactualrs rrBzPTestDataFramePlots.test_barh_plot_labels_mixed_integer_string..<s1   OO !2!2!4 4 rk)rlrcrr$barhrFrget_yticklabels)rgrcr% plot_barhexpected_yticklabelss r*test_barh_plot_labels_mixed_integer_stringz=TestDataFramePlots.test_barh_plot_labels_mixed_integer_string4s ) Q/+PQ1RS TGGLL6$L7 $Q3aK1HI $'))+-A%    rctjjj}tj j }|jdd}|jd|dd|dd<|jd|dd|dd<|ddj|ddj||dddsJ||dddrJ||dddsJ||dd drJy) NrrKrrsharexr/r@) r _matplotlibtools_has_externally_shared_axisrrfigurerL add_subplottwinxrgr;rRplotss r&test_has_externally_shared_axis_x_axisz9TestDataFramePlots.test_has_externally_shared_axis_x_axisC##))EEjj! Q"ooc%(1+o>a ooc%(1+o>a  a  a  E!HQK%%%a S)))E!HQK%%%a S))))rctjjj}tj j }|jdd}|jd|dd|dd<|jd|dd|dd<|ddj|ddj||dddsJ||dddrJ||dddsJ||d ddrJy) NrKrArrshareyiEr0r@) r rrrrrrrLrtwinyrs r&test_has_externally_shared_axis_y_axisz9TestDataFramePlots.test_has_externally_shared_axis_y_axis\rrcltjjj}tj j }|jdd}|jd|dd|dd<d}tjt|5||ddd dddy#1swYyxYw) NrKrrrrrz&needs 'x' or 'y' as a second parameterrz) r rrrrrrrLrr!r"r)rgr;rRrr<s r4test_has_externally_shared_axis_invalid_compare_axiszGTestDataFramePlots.test_has_externally_shared_axis_invalid_compare_axisus##))EEjj! Q"ooc%(1+o>a 7 ]]:S 1 # q!c " # # #s B**B3c ttjjdj dtjjdj dd}t j j}|jdd}|jd|dd|dd<|jd |dd|dd<|ddj}|ddj}|d j|ddd jd |d j|dd|d j|ddd jd|d j|dd|d j|ddd jd |d j|dd|dj|d|dj|d|ddjjjrJ|ddjjjsJ|ddjjjrJy)Nri)rXrr@r~rrrrrXzExternal share only)rIr z"this label should never be visible)rIzInternal share (twin) onlyz#this label should always be visibleBothrgreen)rIryellow)rrarrrrrrrLrrr$ set_xlabelrr get_visible)rgr%rRrtwin_ax1twin_ax2s rtest_externally_shared_axesz.TestDataFramePlots.test_externally_shared_axesscYY**1-==dCYY**1-==dC  jj! Q"ooc%(1+o>a ooc%(1+o>a 8A;$$&8A;$$& 3 a +@ ALL 0  3 a $ 3 a +G HSS 1  3 a $ 3 a 6 2== 0  3 a $ 3  0 3  18A;$$..0<<>>>Qx{  **,88:::8A;$$..0<<>>>>rctdgtdg}t|jt ddi}t|jj y)Nrz2022-02-22 22:22:22rer)rrrr$rr1)rgr%ss r-test_plot_bar_axis_units_timestamp_conversionz@TestDataFramePlots.test_plot_bar_axis_units_timestamp_conversionsK E234  "''" C: !&&**%rc6ddlm}|ddd|dddg}tddgtdddg }t |j j td t|j j j|DsJy) Nrrbz ([0, 1],)rz ([1, 2],)rboth)closedrec3dK|](\}}|j|jk(*ywr[rgris rrBzFTestDataFramePlots.test_bar_plt_xaxis_intervalrange..rjrk) rlrcrrrr$r1rFrrm)rgrcrrs r test_bar_plt_xaxis_intervalrangez3TestDataFramePlots.test_bar_plt_xaxis_intervalranges )A{+T!Q -DE  F!!Qv67  !&&**% AFFJJL88:HE    rN)/rrrsrtr!rurvrrslowrrrarrrrrrrrrrfilterwarningsrrrrrrrrrr$r)r2r7rHrVr`ror|rrrrrrrJrrrxrxs [[[5$-8N9N0 [[[5$-8N9N0 [[MM [[ [[ - 4  [[  ..q1AA"E..q1AA"E..q1AA"E EBJ       ,   [[ [[  ..q1AA"E..q1AA"E..q1AA"E EBJ     V  V [[22 [[ [[ *,TUV  V [[ V V [[ 9 9 [[22 [[ FG9H92E [[ *,TUO O J 26 H 4 1 .   !; M* [[VeV_5S6S" &  *2*2#".?` & rrx)/__doc__rPnumpyrar!pandas.util._test_decoratorsutil_test_decoratorstdpandasrrrrrrr r r pandas._testing_testingrdpandas.tests.plotting.commonr r rrrrrrKrfixturerskip_if_installedr&r=rurvr6 _all_kindsrbreshaperrSrUrxrJrrrs*  ))   f,'f-.V)?i??l#$D!6!6!A!AB Yyryy},,Q2 3VE!H5E F  eAh<+\1- C $?$?N| | r