### Navigation

- index
- modules |
- home|
- examples|
- tutorials|
- pyplot|
- docs »

# Shading Example

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.colors import LightSource
    from matplotlib.cbook import get_sample_data

    # Example showing how to make shaded relief plots
    # like Mathematica
    # (http://reference.wolfram.com/mathematica/ref/ReliefPlot.html)
    # or Generic Mapping Tools
    # (http://gmt.soest.hawaii.edu/gmt/doc/gmt/html/GMT_Docs/node145.html)

    def main():
        # Test data
        x, y = np.mgrid[-5:5:0.05, -5:5:0.05]
        z = 5 * (np.sqrt(x**2 + y**2) + np.sin(x**2 + y**2))

        filename = get_sample_data('jacksboro_fault_dem.npz', asfileobj=False)
        with np.load(filename) as dem:
            elev = dem['elevation']

        fig = compare(z, plt.cm.copper)
        fig.suptitle('HSV Blending Looks Best with Smooth Surfaces', y=0.95)

        fig = compare(elev, plt.cm.gist_earth, ve=0.05)
        fig.suptitle('Overlay Blending Looks Best with Rough Surfaces', y=0.95)

        plt.show()

    def compare(z, cmap, ve=1):
        # Create subplots and hide ticks
        fig, axes = plt.subplots(ncols=2, nrows=2)
        for ax in axes.flat:
            ax.set(xticks=[], yticks=[])

        # Illuminate the scene from the northwest
        ls = LightSource(azdeg=315, altdeg=45)

        axes[0, 0].imshow(z, cmap=cmap)
        axes[0, 0].set(xlabel='Colormapped Data')

        axes[0, 1].imshow(ls.hillshade(z, vert_exag=ve), cmap='gray')
        axes[0, 1].set(xlabel='Illumination Intensity')

        rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='hsv')
        axes[1, 0].imshow(rgb)
        axes[1, 0].set(xlabel='Blend Mode: "hsv" (default)')

        rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='overlay')
        axes[1, 1].imshow(rgb)
        axes[1, 1].set(xlabel='Blend Mode: "overlay"')

        return fig

    if __name__ == '__main__':
        main()

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

Generated by Sphinx-Gallery