

.. _sphx_glr_gallery_images_contours_and_fields_layer_images.py:


============
Layer Images
============

Layer images above one another using alpha blending




.. image:: /gallery/images_contours_and_fields/images/sphx_glr_layer_images_001.png
    :align: center





.. code-block:: python

    from __future__ import division
    import matplotlib.pyplot as plt
    import numpy as np


    def func3(x, y):
        return (1 - x / 2 + x**5 + y**3) * np.exp(-(x**2 + y**2))


    # make these smaller to increase the resolution
    dx, dy = 0.05, 0.05

    x = np.arange(-3.0, 3.0, dx)
    y = np.arange(-3.0, 3.0, dy)
    X, Y = np.meshgrid(x, y)

    # when layering multiple images, the images need to have the same
    # extent.  This does not mean they need to have the same shape, but
    # they both need to render to the same coordinate system determined by
    # xmin, xmax, ymin, ymax.  Note if you use different interpolations
    # for the images their apparent extent could be different due to
    # interpolation edge effects

    extent = np.min(x), np.max(x), np.min(y), np.max(y)
    fig = plt.figure(frameon=False)

    Z1 = np.add.outer(range(8), range(8)) % 2  # chessboard
    im1 = plt.imshow(Z1, cmap=plt.cm.gray, interpolation='nearest',
                     extent=extent)

    Z2 = func3(X, Y)

    im2 = plt.imshow(Z2, cmap=plt.cm.viridis, alpha=.9, interpolation='bilinear',
                     extent=extent)

    plt.show()

**Total running time of the script:** ( 0 minutes  0.036 seconds)



.. container:: sphx-glr-footer


  .. container:: sphx-glr-download

     :download:`Download Python source code: layer_images.py <layer_images.py>`



  .. container:: sphx-glr-download

     :download:`Download Jupyter notebook: layer_images.ipynb <layer_images.ipynb>`

.. rst-class:: sphx-glr-signature

    `Generated by Sphinx-Gallery <https://sphinx-gallery.readthedocs.io>`_
