
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_ranged_dot_plot:


Ranged Dot Plot
---------------
This example shows a ranged dot plot to convey changing life expectancy for the five most populous countries (between 1955 and 2000).


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


    import altair as alt
    from altair.datasets import data

    source = data.countries.url

    chart = (
        alt.Chart(source)
        .encode(x="life_expect:Q", y="country:N")
        .transform_filter(
            alt.FieldOneOfPredicate(
                field="country",
                oneOf=["China", "India", "United States", "Indonesia", "Brazil"],
            )
        )
        .transform_filter(alt.FieldOneOfPredicate(field="year", oneOf=[1955, 2000]))
    )

    line = chart.mark_line(color="#db646f").encode(detail="country:N")

    # Add points for life expectancy in 1955 & 2000
    color = alt.Color(
        "year:O", scale=alt.Scale(domain=[1955, 2000], range=["#e6959c", "#911a24"])
    )
    points = (
        chart.mark_point(
            size=100,
            opacity=1,
            filled=True,
        )
        .encode(color=color)
        .interactive()
    )

    (line + points)


.. tab-set::

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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.countries.url

            chart = (
                alt.Chart(source)
                .encode(x="life_expect:Q", y="country:N")
                .transform_filter(
                    alt.FieldOneOfPredicate(
                        field="country",
                        oneOf=["China", "India", "United States", "Indonesia", "Brazil"],
                    )
                )
                .transform_filter(alt.FieldOneOfPredicate(field="year", oneOf=[1955, 2000]))
            )

            line = chart.mark_line(color="#db646f").encode(detail="country:N")

            # Add points for life expectancy in 1955 & 2000
            color = alt.Color("year:O").scale(domain=[1955, 2000], range=["#e6959c", "#911a24"])
            points = (
                chart.mark_point(
                    size=100,
                    opacity=1,
                    filled=True,
                )
                .encode(color=color)
                .interactive()
            )

            (line + points)


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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.countries.url

            chart = (
                alt.Chart(source)
                .encode(x="life_expect:Q", y="country:N")
                .transform_filter(
                    alt.FieldOneOfPredicate(
                        field="country",
                        oneOf=["China", "India", "United States", "Indonesia", "Brazil"],
                    )
                )
                .transform_filter(alt.FieldOneOfPredicate(field="year", oneOf=[1955, 2000]))
            )

            line = chart.mark_line(color="#db646f").encode(detail="country:N")

            # Add points for life expectancy in 1955 & 2000
            color = alt.Color(
                "year:O", scale=alt.Scale(domain=[1955, 2000], range=["#e6959c", "#911a24"])
            )
            points = (
                chart.mark_point(
                    size=100,
                    opacity=1,
                    filled=True,
                )
                .encode(color=color)
                .interactive()
            )

            (line + points)
