
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_scatter_matrix:


Scatter Matrix
--------------
An example of using a RepeatChart to construct a multi-panel scatter plot
with linked panning and zooming.


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


    import altair as alt
    from altair.datasets import data

    source = data.cars()

    alt.Chart(source).mark_circle().encode(
        alt.X(alt.repeat("column"), type='quantitative'),
        alt.Y(alt.repeat("row"), type='quantitative'),
        color='Origin:N'
    ).properties(
        width=150,
        height=150
    ).repeat(
        row=['Horsepower', 'Acceleration', 'Miles_per_Gallon'],
        column=['Miles_per_Gallon', 'Acceleration', 'Horsepower']
    ).interactive()
    # 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()

            alt.Chart(source).mark_circle().encode(
                alt.X(alt.repeat("column"), type='quantitative'),
                alt.Y(alt.repeat("row"), type='quantitative'),
                color='Origin:N'
            ).properties(
                width=150,
                height=150
            ).repeat(
                row=['Horsepower', 'Acceleration', 'Miles_per_Gallon'],
                column=['Miles_per_Gallon', 'Acceleration', 'Horsepower']
            ).interactive()


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

        .. code:: python


            import altair as alt
            from altair.datasets import data

            source = data.cars()

            alt.Chart(source).mark_circle().encode(
                alt.X(alt.repeat("column"), type='quantitative'),
                alt.Y(alt.repeat("row"), type='quantitative'),
                color='Origin:N'
            ).properties(
                width=150,
                height=150
            ).repeat(
                row=['Horsepower', 'Acceleration', 'Miles_per_Gallon'],
                column=['Miles_per_Gallon', 'Acceleration', 'Horsepower']
            ).interactive()
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
