.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/images_contours_and_fields/contour_demo.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. 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 `. .. GENERATED FROM PYTHON SOURCE LINES 12-27 .. code-block:: default 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 .. GENERATED FROM PYTHON SOURCE LINES 28-31 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. .. GENERATED FROM PYTHON SOURCE LINES 31-37 .. code-block:: default fig, ax = plt.subplots() CS = ax.contour(X, Y, Z) ax.clabel(CS, inline=True, fontsize=10) ax.set_title('Simplest default with labels') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_001.png :alt: Simplest default with labels :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Text(0.5, 1.0, 'Simplest default with labels') .. GENERATED FROM PYTHON SOURCE LINES 38-41 Contour labels can be placed manually by providing list of positions (in data coordinate). See :doc:`/gallery/event_handling/ginput_manual_clabel_sgskip` for interactive placement. .. GENERATED FROM PYTHON SOURCE LINES 41-49 .. code-block:: default 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=True, 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 :alt: labels at selected locations :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Text(0.5, 1.0, 'labels at selected locations') .. GENERATED FROM PYTHON SOURCE LINES 50-51 You can force all the contours to be the same color. .. GENERATED FROM PYTHON SOURCE LINES 51-57 .. code-block:: default fig, ax = plt.subplots() CS = ax.contour(X, Y, Z, 6, colors='k') # Negative contours default to dashed. ax.clabel(CS, fontsize=9, inline=True) ax.set_title('Single color - negative contours dashed') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_003.png :alt: Single color - negative contours dashed :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Text(0.5, 1.0, 'Single color - negative contours dashed') .. GENERATED FROM PYTHON SOURCE LINES 58-59 You can set negative contours to be solid instead of dashed: .. GENERATED FROM PYTHON SOURCE LINES 59-66 .. code-block:: default matplotlib.rcParams['contour.negative_linestyle'] = 'solid' fig, ax = plt.subplots() CS = ax.contour(X, Y, Z, 6, colors='k') # Negative contours default to dashed. ax.clabel(CS, fontsize=9, inline=True) ax.set_title('Single color - negative contours solid') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_004.png :alt: Single color - negative contours solid :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Text(0.5, 1.0, 'Single color - negative contours solid') .. GENERATED FROM PYTHON SOURCE LINES 67-68 And you can manually specify the colors of the contour .. GENERATED FROM PYTHON SOURCE LINES 68-77 .. code-block:: default 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=True) ax.set_title('Crazy lines') .. image:: /gallery/images_contours_and_fields/images/sphx_glr_contour_demo_005.png :alt: Crazy lines :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out Out: .. code-block:: none Text(0.5, 1.0, 'Crazy lines') .. GENERATED FROM PYTHON SOURCE LINES 78-80 Or you can use a colormap to specify the colors; the default colormap will be used for the contour lines .. GENERATED FROM PYTHON SOURCE LINES 80-112 .. code-block:: default 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', extend='both', 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=True, fmt='%1.1f', fontsize=14) # make a colorbar for the contour lines CB = fig.colorbar(CS, shrink=0.8) 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 :alt: Lines with colorbar :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 113-120 ------------ References """""""""" The use of the following functions and methods is shown in this example: .. GENERATED FROM PYTHON SOURCE LINES 121-131 .. code-block:: default 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 .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 2.273 seconds) .. _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 sphx-glr-download-python :download:`Download Python source code: contour_demo.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :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 `_