.. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_images_contours_and_fields_contour_demo.py: ============ Contour Demo ============ Illustrate simple contour plotting, contours on an image with a colorbar for the contours, and labelled contours. See also the :doc:`contour image example `. .. code-block:: python import matplotlib import numpy as np import matplotlib.cm as cm import matplotlib.pyplot as plt delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 Create a simple contour plot with labels using default colors. The inline argument to clabel will control whether the labels are draw over the line segments of the contour, removing the lines beneath the label .. code-block:: python fig, ax = plt.subplots() CS = ax.contour(X, Y, Z) ax.clabel(CS, inline=1, fontsize=10) ax.set_title('Simplest default with labels') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_001.png :class: sphx-glr-single-img contour labels can be placed manually by providing list of positions (in data coordinate). See ginput_manual_clabel.py for interactive placement. .. code-block:: python fig, ax = plt.subplots() CS = ax.contour(X, Y, Z) manual_locations = [(-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4), (2.4, 1.7)] ax.clabel(CS, inline=1, fontsize=10, manual=manual_locations) ax.set_title('labels at selected locations') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_002.png :class: sphx-glr-single-img You can force all the contours to be the same color. .. code-block:: python fig, ax = plt.subplots() CS = ax.contour(X, Y, Z, 6, colors='k', # negative contours will be dashed by default ) ax.clabel(CS, fontsize=9, inline=1) ax.set_title('Single color - negative contours dashed') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_003.png :class: sphx-glr-single-img You can set negative contours to be solid instead of dashed: .. code-block:: python matplotlib.rcParams['contour.negative_linestyle'] = 'solid' fig, ax = plt.subplots() CS = ax.contour(X, Y, Z, 6, colors='k', # negative contours will be dashed by default ) ax.clabel(CS, fontsize=9, inline=1) ax.set_title('Single color - negative contours solid') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_004.png :class: sphx-glr-single-img And you can manually specify the colors of the contour .. code-block:: python fig, ax = plt.subplots() CS = ax.contour(X, Y, Z, 6, linewidths=np.arange(.5, 4, .5), colors=('r', 'green', 'blue', (1, 1, 0), '#afeeee', '0.5') ) ax.clabel(CS, fontsize=9, inline=1) ax.set_title('Crazy lines') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_005.png :class: sphx-glr-single-img Or you can use a colormap to specify the colors; the default colormap will be used for the contour lines .. code-block:: python fig, ax = plt.subplots() im = ax.imshow(Z, interpolation='bilinear', origin='lower', cmap=cm.gray, extent=(-3, 3, -2, 2)) levels = np.arange(-1.2, 1.6, 0.2) CS = ax.contour(Z, levels, origin='lower', cmap='flag', linewidths=2, extent=(-3, 3, -2, 2)) # Thicken the zero contour. zc = CS.collections[6] plt.setp(zc, linewidth=4) ax.clabel(CS, levels[1::2], # label every second level inline=1, fmt='%1.1f', cmap='flag', fontsize=14) # make a colorbar for the contour lines CB = fig.colorbar(CS, shrink=0.8, extend='both') ax.set_title('Lines with colorbar') # We can still add a colorbar for the image, too. CBI = fig.colorbar(im, orientation='horizontal', shrink=0.8) # This makes the original colorbar look a bit out of place, # so let's improve its position. l, b, w, h = ax.get_position().bounds ll, bb, ww, hh = CB.ax.get_position().bounds CB.ax.set_position([ll, b + 0.1*h, ww, h*0.8]) plt.show() .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_006.png :class: sphx-glr-single-img ------------ References """""""""" The use of the following functions and methods is shown in this example: .. code-block:: python import matplotlib matplotlib.axes.Axes.contour matplotlib.pyplot.contour matplotlib.figure.Figure.colorbar matplotlib.pyplot.colorbar matplotlib.axes.Axes.clabel matplotlib.pyplot.clabel matplotlib.axes.Axes.set_position matplotlib.axes.Axes.get_position .. _sphx_glr_download_gallery_images_contours_and_fields_contour_demo.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download :download:`Download Python source code: contour_demo.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: contour_demo.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature Keywords: matplotlib code example, codex, python plot, pyplot `Gallery generated by Sphinx-Gallery `_