
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_layer_line_color_rule:


Line Chart with Layered Aggregates
----------------------------------
This example shows how to make a multi-series line chart of the daily closing
stock prices for AAPL, AMZN, GOOG, IBM, and MSFT between 2000 and 2010, along
with a layered rule showing the average values.


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


    import altair as alt
    from altair.datasets import data

    source = data.stocks()

    base = alt.Chart(source).properties(width=550)

    line = base.mark_line().encode(
        x='date',
        y='price',
        color='symbol'
    )

    rule = base.mark_rule().encode(
        y='average(price)',
        color='symbol',
        size=alt.value(2)
    )

    line + rule
    # No channel encoding options are specified in this chart
    # so the code is the same as for the method-based syntax.


.. tab-set::

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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.stocks()

            base = alt.Chart(source).properties(width=550)

            line = base.mark_line().encode(
                x='date',
                y='price',
                color='symbol'
            )

            rule = base.mark_rule().encode(
                y='average(price)',
                color='symbol',
                size=alt.value(2)
            )

            line + rule


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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.stocks()

            base = alt.Chart(source).properties(width=550)

            line = base.mark_line().encode(
                x='date',
                y='price',
                color='symbol'
            )

            rule = base.mark_rule().encode(
                y='average(price)',
                color='symbol',
                size=alt.value(2)
            )

            line + rule
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
