
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_world_projections:


World Projections
-----------------
This example shows a map of the countries of the world. 
Use the dropdown menu to compare projections. For more details on the `project` arguments, see the API of `altair.Projection <https://altair-viz.github.io/user_guide/generated/core/altair.Projection.html>`_.


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


    import altair as alt
    from altair.datasets import data

    source = alt.topo_feature(data.world_110m.url, 'countries')

    input_dropdown = alt.binding_select(options=[
        "albers",
        "albersUsa",
        "azimuthalEqualArea",
        "azimuthalEquidistant",
        "conicEqualArea",
        "conicEquidistant",
        "equalEarth",
        "equirectangular",
        "gnomonic",
        "mercator",
        "naturalEarth1",
        "orthographic",
        "stereographic",
        "transverseMercator"
    ], name='Projection ')
    param_projection = alt.param(value="equalEarth", bind=input_dropdown)

    alt.Chart(source, width=500, height=300).mark_geoshape(
        fill='lightgray',
        stroke='gray'
    ).project(
        type=alt.expr(param_projection.name)
    ).add_params(param_projection)
    # 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 = alt.topo_feature(data.world_110m.url, 'countries')

            input_dropdown = alt.binding_select(options=[
                "albers",
                "albersUsa",
                "azimuthalEqualArea",
                "azimuthalEquidistant",
                "conicEqualArea",
                "conicEquidistant",
                "equalEarth",
                "equirectangular",
                "gnomonic",
                "mercator",
                "naturalEarth1",
                "orthographic",
                "stereographic",
                "transverseMercator"
            ], name='Projection ')
            param_projection = alt.param(value="equalEarth", bind=input_dropdown)

            alt.Chart(source, width=500, height=300).mark_geoshape(
                fill='lightgray',
                stroke='gray'
            ).project(
                type=alt.expr(param_projection.name)
            ).add_params(param_projection)


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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = alt.topo_feature(data.world_110m.url, 'countries')

            input_dropdown = alt.binding_select(options=[
                "albers",
                "albersUsa",
                "azimuthalEqualArea",
                "azimuthalEquidistant",
                "conicEqualArea",
                "conicEquidistant",
                "equalEarth",
                "equirectangular",
                "gnomonic",
                "mercator",
                "naturalEarth1",
                "orthographic",
                "stereographic",
                "transverseMercator"
            ], name='Projection ')
            param_projection = alt.param(value="equalEarth", bind=input_dropdown)

            alt.Chart(source, width=500, height=300).mark_geoshape(
                fill='lightgray',
                stroke='gray'
            ).project(
                type=alt.expr(param_projection.name)
            ).add_params(param_projection)
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
