
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_simple_scatter_with_errorbars:


Simple Scatter Plot with Errorbars
----------------------------------
A simple scatter plot of a data set with errorbars.


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


    import altair as alt
    import pandas as pd
    import numpy as np

    # generate some data points with uncertainties
    np.random.seed(0)
    x = [1, 2, 3, 4, 5]
    y = np.random.normal(10, 0.5, size=len(x))
    yerr = 0.2

    # set up data frame
    source = pd.DataFrame({"x": x, "y": y, "yerr": yerr})

    # the base chart
    base = alt.Chart(source).transform_calculate(
        ymin="datum.y-datum.yerr",
        ymax="datum.y+datum.yerr"
    )

    # generate the points
    points = base.mark_point(
        filled=True,
        size=50,
        color='black'
    ).encode(
        x=alt.X('x', scale=alt.Scale(domain=(0, 6))),
        y=alt.Y('y', scale=alt.Scale(zero=False))
    )

    # generate the error bars
    errorbars = base.mark_errorbar().encode(
        x="x",
        y="ymin:Q",
        y2="ymax:Q"
    )

    points + errorbars


.. tab-set::

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

        .. code:: python


            import altair as alt
            import pandas as pd
            import numpy as np

            # generate some data points with uncertainties
            np.random.seed(0)
            x = [1, 2, 3, 4, 5]
            y = np.random.normal(10, 0.5, size=len(x))
            yerr = 0.2

            # set up data frame
            source = pd.DataFrame({"x": x, "y": y, "yerr": yerr})

            # the base chart
            base = alt.Chart(source).transform_calculate(
                ymin="datum.y-datum.yerr",
                ymax="datum.y+datum.yerr"
            )

            # generate the points
            points = base.mark_point(
                filled=True,
                size=50,
                color='black'
            ).encode(
                alt.X('x').scale(domain=(0, 6)),
                alt.Y('y').scale(zero=False)
            )

            # generate the error bars
            errorbars = base.mark_errorbar().encode(
                x="x",
                y="ymin:Q",
                y2="ymax:Q"
            )

            points + errorbars


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

        .. code:: python


            import altair as alt
            import pandas as pd
            import numpy as np

            # generate some data points with uncertainties
            np.random.seed(0)
            x = [1, 2, 3, 4, 5]
            y = np.random.normal(10, 0.5, size=len(x))
            yerr = 0.2

            # set up data frame
            source = pd.DataFrame({"x": x, "y": y, "yerr": yerr})

            # the base chart
            base = alt.Chart(source).transform_calculate(
                ymin="datum.y-datum.yerr",
                ymax="datum.y+datum.yerr"
            )

            # generate the points
            points = base.mark_point(
                filled=True,
                size=50,
                color='black'
            ).encode(
                x=alt.X('x', scale=alt.Scale(domain=(0, 6))),
                y=alt.Y('y', scale=alt.Scale(zero=False))
            )

            # generate the error bars
            errorbars = base.mark_errorbar().encode(
                x="x",
                y="ymin:Q",
                y2="ymax:Q"
            )

            points + errorbars
