
    P/Phh                     >    d Z ddlZddlZddlmZ dgZddddddZdS )	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                D    t          j        |          }t          |          }|t          j        |          }n fd|D             }|t          |t                    rt          j        |g          }nt          j        |          }t          j        |dt          j        |j	        t           j
                            }	t          j        g d|           |dk    rd}
nW|d	k    r*t          j        |d           d
z  }
|	|
dddf         z  }	n'|dk    rS|j        d         }||d
z
  t          j        |          dddf         z
  z                      d          }
|
| z  }
|	|
z  }	n|dk    rt          j        |d          }t          j        |          }|dk    }d||         z  ||<   t          j        |ddddf         t          j        |          f          }||	z
  }|d
|z  z  }||z  }d
|dddf<   |d
z
  |z  }t          j        |                    d                    }|d
|z  z
  }
|	|
z  }	  j        ||
|	dddf         ft)          |          t)          |          t)          |d          d|}dg|j        j        dd<   |g}t/          t1          |          dz
            D ]h}|                      j        ||	|ddf         |	|dz   ddf         ft)          |          t)          |          t)          |d          d|           i|S )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   J   K   | ]}j                                         V  d S )N)
_get_linesget_next_color).0_axess     T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/stackplot.py	<genexpr>zstackplot.<locals>.<genexpr>Y   s1      >>q$/0022>>>>>>    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#..}((&& Iaar'7'L'LMMMECCC (* * * *6

	U		fQll]S(
D!!!G$$	X		GAJ1s7RYq\\!!!T'%::;@@CC
qb
	&	&	&q!M%((	qyd+	$9a1Q3i455U]
cAg
y(1C-8+6::a==))cEk)
 4Q
E!QQQ$K ''+F||#';;#'#5#5' '  &	' 'D
  SD	A 3q66A: . .	""1eAqqqDk5Q? --1&\\)-e)-fd););- - &,	- - 	. 	. 	. 	.
 Hr   )__doc__r    numpyr   
matplotlibr   __all__r   r   r   r   <module>rI      sw                  - D6A A A A A A Ar   