: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.