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.

import altair as alt
from vega_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.condition(brush, 'Origin', alt.ColorValue('gray')),
).add_params(
    brush
).properties(
    width=250,
    height=250
)

base.encode(x='Horsepower') | base.encode(x='Acceleration')
import altair as alt
from vega_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.condition(brush, 'Origin', 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.