
    *g.4                       d dl mZ d dlZd dlmZ d dlmZ d dlmZ	 d dl
Zd dlmZ d dlmZ d dlmZ d dlmZmZmZmZ erd d	lmZ d d
lmZ d dlmZ d dlmZmZm Z  	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ!d Z"	 	 	 d	 	 	 	 	 ddZ#	 	 	 	 d	 	 	 	 	 	 	 ddZ$	 	 	 d	 	 	 	 	 	 	 	 	 ddZ%	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddZ&d d!dZ'd"d#dZ(d Z)y)$    )annotationsN)TYPE_CHECKING)patches)notna)pprint_thing)get_standard_colors)create_subplotsdo_adjust_figuremaybe_adjust_figureset_ticks_props)Hashable)Axes)Figure)	DataFrameIndexSeriesc
                   | j                         }|j                  j                  }||z  }t        |||d      \  }}t	        |dd       t        |      }t        |      }|xs i }|xs i }|
j                  dd       g }|j                  D ]o  }||   j                  ||   j                     }t        j                  |      t        j                  |      }}||z
  |	z  dz  }|j                  ||z
  ||z   f       q t        |j                        D ]  \  }}t        |j                        D ]  \  }}|||f   }||k(  r||   j                  ||   j                     }|dk(  r |j                  |fi | nj|d	v rfdd
lm} |} ||      }t        j"                  |j                         |j                         d      } |j$                  ||j'                  |      fi | |j)                  ||          n`||   ||   z  j                  } |j*                  ||   |   ||   |   f||d|
 |j)                  ||          |j-                  ||          |j/                  |       |j1                  |       |dk7  r|j2                  j5                  d       ||dz
  k7  sv|j6                  j5                  d         t9        |j                        dkD  r|d   }|d   d   j2                  j;                         } | |d   | k  | |d   k  z     } | |d   z
  |d   |d   z
  z  }!|d   d   j=                         }"|!|"d   |"d   z
  z  |"d   z   }!|d   d   j2                  j?                  |!       t        j@                  | | jC                  tD              k(        r| jC                  tD              } |d   d   j2                  jG                  |        tI        |dddd       |S )NF)naxesfigsizeaxsqueezer   )wspacehspace
edgecolorsnone   hist)kdedensity)gaussian_kdei  )markeralpha      Z   )
xlabelsizexrot
ylabelsizeyrot)%_get_numeric_datacolumnssizer	   r   r   _get_marker_compat
setdefaultvaluesnpminmaxappend	enumerater   scipy.statsr    linspaceplotevaluateset_xlimscatterset_ylim
set_xlabel
set_ylabelyaxisset_visiblexaxislenget_majorticklocsget_ylim	set_ticksallastypeintset_ticklabelsr   )#framer"   r   r   griddiagonalr!   density_kwds	hist_kwdsrange_paddingkwdsdfnr   figaxesmaskboundaries_listar/   rmin_rmax_
rdelta_extijbr    ygkdeindcommonlim1locsadjlim0s#                                      j/var/www/html/articles-backend/trend/venv/lib/python3.12/site-packages/pandas/plotting/_matplotlib/misc.pyscatter_matrixrf   "   s    
	 	 	"B


AEEeWUSIC Aa09D'FRI%2L 	OOL&)OZZ IAd1gnn-vvf~rvvf~uem}4q8

 2EJ4FGH	I "**% %,1bjj) $	,DAqadBAvAd1gnn5 v%BGGF0i0!338A'?D++aeegquuw=CBGGCs!3D|DOA./ q'DG+33

qE&M2a5=9?uPT OA./OA./MM!MM!Av$$U+AEz$$U+I$	,%,N 2::q!Awqz113T!W_a9:d1g~$q'DG"34Awqz""$T!WtAw&'$q'1Q
""3'66$$++c**+;;s#DQ
''-DQRAAFK    c                ,    | t         j                  vry| S )No)mlineslineMarkers)r!   s    re   r-   r-      s    V'''Mrg   c           	     f   dd l m} d }t        |       }| |   j                         }	| |   }
| j	                  |d      j                  |      }|4|j                         }|j                  dd       |j                  dd       i }t        t        |	      |d|      }|	D ]	  }g g g||<    t        | j                        dz
  }t        j                  t        |      D cg c]  }dt        j                  z  ||z  z   c}D cg c],  }t        j                  |      t        j                   |      f. c}      }t        |      D ]  }|j"                  |   j$                  }t        j&                  t        j(                  |d      dd      }||z  j+                  d      |j+                         z  }|
j,                  |   }||   d   j/                  |d          ||   d   j/                  |d           t1        |	      D ]4  \  }} |j2                  ||   d   ||   d   f||   t5        |      d	| 6 |j7                          |j9                  t;        j<                  d
dd             t?        ||j                        D ]  \  }}|j9                  t;        j<                  |dd             |d   dk  r,|d   dk  r$|jA                  |d   dz
  |d   dz
  |ddd       b|d   dcxk  r|d   k  r'n n$|jA                  |d   dz
  |d   dz   |ddd       |d   dcxk  r|d   k  r'n n$|jA                  |d   dz   |d   dz
  |ddd       |d   dk\  s|d   dk\  s|jA                  |d   dz   |d   dz   |ddd       	 |jC                  d       |S c c}w c c}w )Nr   c                D    t        |       }t        |       }| |z
  ||z
  z  S N)r1   r2   )seriesrV   r\   s      re   	normalizezradviz.<locals>.normalize   s'    KK
q1u%%rg   r#   axisrandom
num_colorscolormap
color_typecolorr   ry   label)        r|         ?r   )radius	facecolorg?grayr|   righttopsmall)havar,   bottomleftequal)"matplotlib.pyplotpyplotrA   drop_duplicatesdropapplygcar9   r;   r   r+   r0   arrayrangepicossinilocr/   repeatexpand_dimssumiatr3   r4   r:   r   legend	add_patchr   Circleziptextrr   )rI   class_columnr   ry   rw   rO   pltrp   rQ   classes	class_colrP   to_plotcolorsklsmrZ   tsrowrow_r]   xynames                           re   radvizr      s    $&
 	E
AL!113Gl#I	Lq	)	/	/		:B	zWWY
B
B*,G w<(xuF   Bx  	EMMQA
GLQx)P!!bee)q1u*=)PQA"&&)RVVAY	Q	A 1X %ggajyy!4aa@XNNN"SWWY.mmAQqt$Qqt$% G$ 
3

CLOCLO	
 )s#		

 	

 IIKLL
3&IJ2::& D
W^^BuGHa53;2a53;GG1r!uu}dw5w   US!BqE!GG11   US!BqE!GG1r!uu}dv%g   Uc\beslGG1r!uu}dv(QX  +2 GGGIc *QQs   ! N)1N.c                X   dd l m} d }t        |       }	| |   }
| |   j                         }| j	                  |d      }t        j                  t
        j                   t
        j                  |      }t               }t        t        |      |d|      }t        t        ||            }|?|j                         }|j                  t
        j                   t
        j                         t        |	      D ]  }|j                  |   j                   } ||      } ||      }|
j"                  |   }t%        |      }||vr,|j'                  |        |j(                  ||f||   |d| v |j(                  ||fd||   i|  |j+                  d	
       |j-                          |S )Nr   c                      fd}|S )Nc                X   d   }|t        j                  d      z  }t        j                  t        j                        d      }t        j                  |t        |j                  dz   dz        df      }t        j                  d|j                  d         dz   }t        j                  ||       }|t        j                  |d d dt         j                  f   t        j                  |      z  |d d dt         j                  f   t        j                  |      z  z   d      z  }|S )Nr   g       @r#   r   rq   )r0   sqrtdeletecopyresizerG   r,   arangeshapeouterr   newaxisr   r   )r   x1resultcoeffs	harmonics	trig_args
amplitudess         re   fz+andrews_curves.<locals>.function.<locals>.f   s    AB"''#,&F
 YYrwwz2A6FYYvV[[1_,A(BA'FGF 		!V\\!_59IA.Ibffq!RZZ'(266)+<<Arzz)*RVVI->>? F
 Mrg    )r   r   s   ` re   functionz andrews_curves.<locals>.function   s    	, rg   r#   rq   rt   ru   rz   ry   upper rightloc)r   r   rA   r   r   r0   r6   r   setr   dictr   r   r9   r   r   r/   r   r   addr7   r   rJ   )rI   r   r   samplesry   rw   rO   r   r   rQ   r   r   rP   r   used_legendscolor_valuesr   rZ   r   r   r]   r   r{   s                          re   andrews_curvesr      s}    $2 	E
Al#IL!113G	Lq	)B
RUUFBEE7+A UL&w<(xuL #g|,-F	zWWY
RUUFBEE"1X 
5ggajSMaDmmAS!$U#BGGAqAs5ADABGGAq4s4t4
5 II-I GGIIrg   c           	        dd l m} t        | j                        }t	        |      D cg c]  }t        j                  ||       }}t        j                  |D 	cg c]  }	t        j                  |	       c}	      }
t        j                  |D 	cg c]  }	t        j                  |	       c}	      }t        j                  |D 	cg c]  }	t        |	      t        |	      z   dz   c}	      }||j                         }t        t	        |            }g }|j                  ddd      }|j                  d       |j!                  |        |j"                  ||
fi | |j                  ddd      }|j                  d       |j!                  |        |j"                  ||fi | |j                  ddd      }|j                  d       |j!                  |        |j"                  ||fi | |j                  ddd      }|j                  d       |j!                  |        |j$                  |
fi | |j                  ddd	      }|j                  d
       |j!                  |        |j$                  |fi | |j                  ddd      }|j                  d       |j!                  |        |j$                  |fi | |D ]D  }|j'                  |j)                         d       |j'                  |j+                         d       F t-        |      r|j/                          |S c c}w c c}	w c c}	w c c}	w )Nr         ?r      r#   Sample   Mean   Median   Midranger$   )fontsize)r   r   listr/   r   rt   sampler0   r   meanmedianr1   r2   figureadd_subplotr<   r3   r7   r   setpget_xticklabelsget_yticklabelsr
   tight_layout)ro   rR   r,   r   rO   r   data_	samplingssamplingmeansmedians	midrangesxrS   ax1ax2ax3ax4ax5ax6rr   s                         re   bootstrap_plotr   #  s    $ D49'NCqtT*CICHH	BHbggh'BCEhhIF		(+FGG?HI8#h-#h-
'3	.II {jjlU7^AD
//!Q
"CNN8KKCHHQ
//!Q
"CNN8KKCHHQ 4 
//!Q
"CNN8KKCHHQ	"T"
//!Q
"CNN6KKCHHUd
//!Q
"CNN8KKCHHW
//!Q
"CNN:KKCHHY$ 5%%'!4%%'!45 JQ DBFIs   L0L5L:!L?c                   dd l m} |	ddd}	t        |       }| |   j                         }| |   }|| j	                  |d      }n| |   }t               }t        |j                        }|du rSt        j                  t        j                  t        |j                                    st        d      |j                  }ne|Ot        j                  t        j                  |            st        d      t        |      |k7  rt        d	      |}nt        t        |            }||j                         }t        t        |      |d
|      }|
rt        |      }t        |      }t!        t#        ||            }t        |      D ]~  }|j$                  |   j&                  }|j(                  |   }t+        |      }||vr,|j-                  |        |j.                  ||f||   |d| f |j.                  ||fd||   i|  |r|D ]  } |j0                  |fi |	  |j3                  |       |j5                  |j                         |j7                  |d   |d          |j9                  d       |j;                          |S )Nr   r#   black)	linewidthry   rq   Tz,Columns must be numeric to be used as xticksz xticks specified must be numericz-Length of xticks must match number of columnsrt   ru   rz   ry   rs   r   r   )r   r   rA   r   r   r   r+   r0   rE   isrealr   
ValueErrorr   r   r   sortedr   r   r   r/   r   r   r   r7   axvline
set_xticksset_xticklabelsr9   r   rJ   )rI   r   colsr   ry   use_columnsxticksrw   axvlinesaxvlines_kwdssort_labelsrO   r   rQ   r   r   rP   r   ncolsr   r   r   rZ   r]   r   r{   s                             re   parallel_coordinatesr   Z  s[    $&'':E
AL!113Gl#I|ZZ1Z-4[ UL

OE dvvbiiRZZ 012KLLJJ		vvbii'(?@@v;%LMMu	zWWY&w<(xuL /l+#g|,-F1X 5GGAJmmAS!$U#BGGAqAs5ADABGGAq4s4t45  	+ABJJq*M*	+ MM!rzz"KK!aeII-I GGIIrg   c                   dd l m} |j                  d|j                  d          | j                  }|d |  }||d  }||j                         }|j                  d       |j                  d| d        |j                  ||fi | |S )Nr   czpatch.facecolorzy(t)zy(t + ))	r   r   r.   rcParamsr/   r   r<   r=   r:   )ro   lagr   rO   r   r   y1y2s           re   lag_plotr    s    #OOC&789==D	etB	cdB	zWWYMM&MMF3%q/"BJJr2Irg   c                  
 dd l m} t        |       t        j                  |       |4|j                         }|j                  d       |j                  dd       t        j                        t        j                  z
  dz        z  

fd}t        j                        dz   }|D cg c]
  } ||       }}d}d}	|j                  |	t        j                        z  d	d
       |j                  |t        j                        z  d
       |j                  dd       |j                  | t        j                        z  d
       |j                  |	 t        j                        z  d	d
       |j                  d       |j                  d        |j                  ||fi | d|v r|j!                          |j#                          |S c c}w )Nr   r#   g      r}   r   c                T    d | z
   z
  | d  z
  z  j                         z  z  S rn   )r   )hc0r   r   rQ   s    re   rzautocorrelation_plot.<locals>.r  s:    gA%$qr(T/:??AAEJJrg   g1\?g`dL@z--grey)r]   	linestylery   )r]   ry   r|   r   LagAutocorrelationr{   )r   r   rA   r0   asarrayr   r9   r;   r   r   r   axhliner   r<   r=   r7   r   rJ   )ro   r   rO   r   r  r   r   r]   z95z99r  r   r   rQ   s             @@@@re   autocorrelation_plotr    s   #FA::fD	zWWY
Aq
D#774=D	"	#a	'BK 			!qAC3A
C
CJJrwwqz!TJ@JJrwwqz!J0JJGJ$JJ#
"&J1JJ#
"d&JAMM%MM#$BGGAqD$
		GGII 	s   8G$c                L    t        | t              rt        |       dk(  r| d   } | S )Nr#   r   )
isinstancer   rA   )keyss    re   unpack_single_str_listr    s$    $#d)q.AwKrg   )	r   NNFr   .NNg?)rI   r   r"   floatr   ztuple[float, float] | NonerJ   boolrK   strr!   r  rN   r  )NNN)rI   r   r   Axes | Nonereturnr   )N   NN)rI   r   r   r  r   rG   r  r   )N2   i  )
ro   r   rR   zFigure | Noner,   rG   r   rG   r  r   )	NNNFNNTNF)rI   r   r   r  r   r  r   r  r   r  r  r   )r#   N)ro   r   r  rG   r   r  r  r   rn   )ro   r   r   r  r  r   )*
__future__r   rt   typingr   
matplotlibr   matplotlib.lineslinesrj   numpyr0   pandas.core.dtypes.missingr   pandas.io.formats.printingr   !pandas.plotting._matplotlib.styler   !pandas.plotting._matplotlib.toolsr	   r
   r   r   collections.abcr   matplotlib.axesr   matplotlib.figurer   pandasr   r   r   rf   r-   r   r   r   r   r  r  r  r   rg   re   <module>r0     s   "     !  , 3 A  ($(  *.^^^ (^
 ^ ^ ^ ^B 
TT 	T 
Tt 
@@ 	@ 	@ 
@J 	44	4 4 	4 4t 

NN 		N N N N 
Nb"Brg   