.. _pylab_examples-shading_example: pylab_examples example code: shading_example.py =============================================== .. plot:: /home/tcaswell/source/p/matplotlib/doc/mpl_examples/pylab_examples/shading_example.py :: 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() Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)