rL i<dZddlZddlZddlmZdgZddddddZy) 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 stackplotzero)labelscolorshatchbaselinec tj|}t|}|tj|}n fd|D}|t |t rtj|g}ntj|}tj|dtj|jtj} tjgd||dk(rd} nH|d k(r(tj|d d z} | | dddfz } n|d k(rO|jd} || d z tj| dddfz zjd} | | z} | | z } n|d k(rtj|d} tj | } | dkD}d | |z | |<tj"|ddddftj$|f}| | z }|d |zz }|| z}d |dddf<|d z |z}tj|jd}|d | zz } | | z } j&| | dddfft)|t)|t)|dd|}dg|j*j,dd|g}t/t1|dz D]W}|j3j&|| |ddf| |dzddfft)|t)|t)|dd|Y|S)a Draw a stacked area plot or a streamgraph. Parameters ---------- x : (N,) array-like y : (M, N) array-like The data can be either stacked or unstacked. Each of the following calls is legal:: stackplot(x, y) # where y has shape (M, N) e.g. y = [y1, y2, y3, y4] stackplot(x, y1, y2, y3, y4) # 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. Nc3RK|]}jj yw)N) _get_linesget_next_color).0_axess Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/stackplot.py zstackplot..Ys>q$//002>s$'r)axisdtype)rsymwiggleweighted_wiggle)r rgrg?rrg?) facecolorr label)npvstackiter itertoolscycle isinstancestrcumsum promote_typesrfloat32r check_in_listsumshapearange zeros_likehstackdiff fill_betweennext sticky_edgesyrangelenappend)rxrrr r argskwargsr0stack first_linemtotal inv_totalmaskincrease below_sizemove_upcentercollris` rrrsB $A &\F (>A> } 5#.(& IIaar'7'7'L MEC (*6 U ffQl]S(  D!G$$ X  GGAJ1s7RYYq\!T'%::;@@C qb   & &q! MM%( qyd + $99a1Q3i45U] cAg y(1 C-8+6::a=)cEk)   4  Q E!Q$K ''+F|#';#'#5 ' &  'D  SD A3q6A: . """1eAqDk5Q?--1&\)-e)-fd);-&, - .. H)__doc__rnumpyr matplotlibr__all__rrrDrrIs- -D6A rD