
:orphan:
:html_theme.sidebar_secondary.remove:

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

.. _gallery_simple_heatmap:


Simple Heatmap
--------------
This example shows a simple heatmap for showing gridded data.


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


    import altair as alt
    import numpy as np
    import pandas as pd

    # Compute x^2 + y^2 across a 2D grid
    x, y = np.meshgrid(range(-5, 5), range(-5, 5))
    z = x ** 2 + y ** 2

    # Convert this grid to columnar data expected by Altair
    source = pd.DataFrame({'x': x.ravel(),
                         'y': y.ravel(),
                         'z': z.ravel()})

    alt.Chart(source).mark_rect().encode(
        x='x:O',
        y='y:O',
        color='z:Q'
    )
    # 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
            import numpy as np
            import pandas as pd

            # Compute x^2 + y^2 across a 2D grid
            x, y = np.meshgrid(range(-5, 5), range(-5, 5))
            z = x ** 2 + y ** 2

            # Convert this grid to columnar data expected by Altair
            source = pd.DataFrame({'x': x.ravel(),
                                 'y': y.ravel(),
                                 'z': z.ravel()})

            alt.Chart(source).mark_rect().encode(
                x='x:O',
                y='y:O',
                color='z:Q'
            )


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

        .. code:: python


            import altair as alt
            import numpy as np
            import pandas as pd

            # Compute x^2 + y^2 across a 2D grid
            x, y = np.meshgrid(range(-5, 5), range(-5, 5))
            z = x ** 2 + y ** 2

            # Convert this grid to columnar data expected by Altair
            source = pd.DataFrame({'x': x.ravel(),
                                 'y': y.ravel(),
                                 'z': z.ravel()})

            alt.Chart(source).mark_rect().encode(
                x='x:O',
                y='y:O',
                color='z:Q'
            )
            # No channel encoding options are specified in this chart
            # so the code is the same as for the method-based syntax.
