
:orphan:
:html_theme.sidebar_secondary.remove:

.. This document is auto-generated by the altair-gallery extension. Do not modify directly.

.. _gallery_density_stack:


Stacked Density Estimates
-------------------------
To plot a stacked graph of estimates, use a shared ``extent`` and a fixed
number of subdivision ``steps`` to ensure that the points for each area align
well.  Density estimates of body mass for each penguin species are plotted
in a stacked method.  In addition, setting ``counts`` to true multiplies the
densities by the number of data points in each group, preserving proportional
differences.


.. altair-plot::
    :remove-code:
    



    import altair as alt
    from altair.datasets import data

    source = data.penguins()

    alt.Chart(source).transform_density(
        density='Body Mass (g)',
        groupby=['Species'], 
        extent= [2500, 6500],
        counts = True,
        steps=200    
    ).mark_area().encode(
        alt.X('value:Q').title('Body Mass (g)'), 
        alt.Y('density:Q', stack='zero'),
        alt.Color('Species:N')
    ).properties(
        width=400,
        height=80,
        title='Distribution of Body Mass of Penguins'
    )


.. tab-set::

    .. tab-item:: Method syntax
        :sync: method

        .. code:: python



            import altair as alt
            from altair.datasets import data

            source = data.penguins()

            alt.Chart(source).transform_density(
                density='Body Mass (g)',
                groupby=['Species'], 
                extent= [2500, 6500],
                counts = True,
                steps=200
            ).mark_area().encode(
                alt.X('value:Q').title('Body Mass (g)'), 
                alt.Y('density:Q', stack='zero'),
                alt.Color('Species:N')
            ).properties(
                width=400,
                height=80,
                title='Distribution of Body Mass of Penguins'
            )


    .. tab-item:: Attribute syntax
        :sync: attribute

        .. code:: python



            import altair as alt
            from altair.datasets import data

            source = data.penguins()

            alt.Chart(source).transform_density(
                density='Body Mass (g)',
                groupby=['Species'], 
                extent= [2500, 6500],
                counts = True,
                steps=200    
            ).mark_area().encode(
                alt.X('value:Q').title('Body Mass (g)'), 
                alt.Y('density:Q', stack='zero'),
                alt.Color('Species:N')
            ).properties(
                width=400,
                height=80,
                title='Distribution of Body Mass of Penguins'
            )
