Ë
    ¨ehh  ã                   ó<   — 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y)	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                óú  ‡ — 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}
�nH|d	k(  r(t        j                  |d«       d
z  }
|	|
ddd…f   z  }	�n|dk(  rO|j                  d   }||d
z
  t        j                  |«      dd…df   z
  z  j                  d«      }
|
| z  }
|	|
z  }	nÇ|dk(  rÂt        j                  |d«      }t        j                   |«      }|dkD  }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                  |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 ]W  }|j3                   ‰ j&                  ||	|dd…f   |	|dz   dd…f   ft)        |«      t)        |«      t)        |d«      dœ|¤Ž«       ŒY |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   óR   •K  — | ]  }‰j                   j                  «       –— Œ  y ­w)N)Ú
_get_linesÚget_next_color)Ú.0Ú_Úaxess     €úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/stackplot.pyú	<genexpr>zstackplot.<locals>.<genexpr>Y   s   øè ø€ Ò>°q�$—/‘/×0Ñ0×2Ñ>ùs   ƒ$'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Úkwargsr0   Ú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¬#Ô.Ü—‘  Ó(‰ä—‘ Ó&ˆô �I‰I�a˜a¤r×'7Ñ'7¸¿¹ÄÇÁÓ'LÔM€Eä×ÑÒCØ (õ*à�6ÒØŠ
à	�UÒ	Ü—f‘f˜Q “l�] SÑ(ˆ
Ø�˜D¢!˜GÑ$Ñ$Šà	�XÒ	Ø�G‰G�A‰JˆØ˜1˜s™7¤R§Y¡Y¨q£\²!°T°'Ñ%:Ñ:Ñ;×@Ñ@ÀÓCˆ
Ø�q�bÑˆ
Ø�Ñ‰à	Ð&Ò	&Ü—‘�q˜!“ˆä—M‘M %Ó(ˆ	Ø�q‰yˆØ  d¡Ñ+ˆ	�$‰Ü—9‘9˜a¢ 1 Q 3 ™i¬¯©°«Ð4Ó5ˆØ˜U‘]ˆ
Ø�c˜A‘gÑˆ
Ø˜yÑ(ˆØˆ’�1�‰Ø˜C‘- 8Ñ+ˆÜ—‘˜6Ÿ:™: a›=Ó)ˆØ˜c E™kÑ)ˆ
Ø�Ñˆð ˆ4×Ñ˜Q 
¨E°!²Q°$©Kð 'Ü'+¨F£|Ü#'¨£;Ü#'¨°Ó#5ñ'ð  &ñ	'€Dð
  ˜S€D×Ñ×Ñ™ÐØ	ˆ€Aô ”3�q“6˜A‘:Óò .ˆØ	�‰Ð"�×"Ñ" 1 e¨Aªq¨D¡k°5¸¸Q¹Â¸±?ð -Ü-1°&«\Ü)-¨e«Ü)-¨f°dÓ);ñ-ð &,ñ	-õ 	.ð.ð €Hó    )Ú__doc__r   Únumpyr   Ú
matplotlibr   Ú__all__r   r   rD   r   ú<module>rI      s-   ðñó ã å àˆ-€ð  ¨D¸6õArD   