
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_scatter_linked_brush:


Multi-panel Scatter Plot with Linked Brushing
---------------------------------------------
This is an example of using an interval selection to control the color of
points across multiple panels.


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


    import altair as alt
    from altair.datasets import data

    source = data.cars()

    brush = alt.selection_interval(resolve='global')

    base = alt.Chart(source).mark_point().encode(
        y='Miles_per_Gallon',
        color=alt.when(brush).then("Origin").otherwise(alt.ColorValue("gray")),
    ).add_params(
        brush
    ).properties(
        width=250,
        height=250
    )

    base.encode(x='Horsepower') | base.encode(x='Acceleration')
    # 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.cars()

            brush = alt.selection_interval(resolve='global')

            base = alt.Chart(source).mark_point().encode(
                y='Miles_per_Gallon',
                color=alt.when(brush).then("Origin").otherwise(alt.ColorValue("gray")),
            ).add_params(
                brush
            ).properties(
                width=250,
                height=250
            )

            base.encode(x='Horsepower') | base.encode(x='Acceleration')


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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.cars()

            brush = alt.selection_interval(resolve='global')

            base = alt.Chart(source).mark_point().encode(
                y='Miles_per_Gallon',
                color=alt.when(brush).then("Origin").otherwise(alt.ColorValue("gray")),
            ).add_params(
                brush
            ).properties(
                width=250,
                height=250
            )

            base.encode(x='Horsepower') | base.encode(x='Acceleration')
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
