
    hh                     >    S r SSKrSSKrSSKJr  S/rSSSSS.S jrg)	z
Stacked area plot for 1D arrays inspired by Douglas Y'barbo's stackoverflow
answer:
https://stackoverflow.com/q/2225995/

(https://stackoverflow.com/users/66549/doug)
    N)_api	stackplot zero)labelscolorshatchbaselinec                  ^  [         R                  " U5      n[        U5      nUb  [        R                  " U5      nOU 4S jU 5       nUb  [        U[        5      (       a  [        R                  " U/5      nO[        R                  " U5      n[         R                  " US[         R                  " UR                  [         R                  5      S9n	[        R                  " / SQUS9  US:X  a  Sn
GOJUS	:X  a(  [         R                  " US5      * S
-  n
XSSS24   -  n	GOUS:X  aM  UR                  S   nXS
-
  [         R                  " U5      SS2S4   -
  -  R                  S5      n
X* -  n
X-  n	OUS:X  a  [         R                  " US5      n[         R                   " U5      nUS:  nSX   -  X'   [         R"                  " USS2SS24   [         R$                  " U5      45      nX-
  nUS
U-  -  nUU-  nS
USS2S4'   US
-
  U-  n[         R                  " UR                  S5      5      nUS
U-  -
  n
X-  n	T R&                  " UW
U	SSS24   4[)        U5      [)        U5      [)        US5      S.UD6nS/UR*                  R,                  SS& U/n[/        [1        U5      S-
  5       HW  nUR3                  T R&                  " XUSS24   U	US-   SS24   4[)        U5      [)        U5      [)        US5      S.UD65        MY     U$ )a  
Draw a stacked area plot or a streamgraph.

Parameters
----------
x : (N,) array-like

y : (M, N) array-like
    The data is assumed to be unstacked. Each of the following
    calls is legal::

        stackplot(x, y)           # where y has shape (M, N)
        stackplot(x, y1, y2, y3)  # where y1, y2, y3, y4 have length N

baseline : {'zero', 'sym', 'wiggle', 'weighted_wiggle'}
    Method used to calculate the baseline:

    - ``'zero'``: Constant zero baseline, i.e. a simple stacked plot.
    - ``'sym'``:  Symmetric around zero and is sometimes called
      'ThemeRiver'.
    - ``'wiggle'``: Minimizes the sum of the squared slopes.
    - ``'weighted_wiggle'``: Does the same but weights to account for
      size of each layer. It is also called 'Streamgraph'-layout. More
      details can be found at http://leebyron.com/streamgraph/.

labels : list of str, optional
    A sequence of labels to assign to each data series. If unspecified,
    then no labels will be applied to artists.

colors : list of :mpltype:`color`, optional
    A sequence of colors to be cycled through and used to color the stacked
    areas. The sequence need not be exactly the same length as the number
    of provided *y*, in which case the colors will repeat from the
    beginning.

    If not specified, the colors from the Axes property cycle will be used.

hatch : list of str, default: None
    A sequence of hatching styles.  See
    :doc:`/gallery/shapes_and_collections/hatch_style_reference`.
    The sequence will be cycled through for filling the
    stacked areas from bottom to top.
    It need not be exactly the same length as the number
    of provided *y*, in which case the styles will repeat from the
    beginning.

    .. versionadded:: 3.9
       Support for list input

data : indexable object, optional
    DATA_PARAMETER_PLACEHOLDER

**kwargs
    All other keyword arguments are passed to `.Axes.fill_between`.

Returns
-------
list of `.PolyCollection`
    A list of `.PolyCollection` instances, one for each element in the
    stacked area plot.
Nc              3   X   >#    U  H  nTR                   R                  5       v   M!     g 7f)N)
_get_linesget_next_color).0_axess     F/var/www/html/env/lib/python3.13/site-packages/matplotlib/stackplot.py	<genexpr>stackplot.<locals>.<genexpr>Y   s!     >Aq$//0022As   '*r   )axisdtype)r   symwiggleweighted_wiggle)r
   r   g        r   g      ?r   r   g      ?   )	facecolorr	   label)npvstackiter	itertoolscycle
isinstancestrcumsumpromote_typesr   float32r   check_in_listsumshapearange
zeros_likehstackdifffill_betweennextsticky_edgesyrangelenappend)r   xr   r   r	   r
   argskwargsr1   stack
first_linemtotal	inv_totalmaskincrease
below_sizemove_upcentercollris   `                     r   r   r      s   B 			$A&\F(>A>}
5#..(& IIaar'7'7'LMEC (*6
	U	ffQl]S(
D!G$$	X	GGAJs7RYYq\!T'%::;@@C
b
	&	&q!MM%(	qy+	99a1Q3i45]
cAg
y(1C-8+6::a=)cEk)
 Q
E!Q$K ''+F|#';#'#5'  &	'D
  SD	A 3q6A:	""1AqDk5Q? --1&\)-e)-fd);- &,	- 	.  H    )__doc__r    numpyr   
matplotlibr   __all__r   r   rE   r   <module>rJ      s-      - D6ArE   