A **contour plot **is a type of plot that allows us to visualize three-dimensional data in two dimensions by using contours.

You can create a contour plot in Matplotlib by using the following two functions:

- matplotlib.pyplot.contour() – Creates contour plots.
- matplotlib.pyplot.contourf() – Creates filled contour plots.

The following examples show how to use these two functions in practice.

**Example 1: Contour Plot in Matplotlib**

Suppose we have the following data in Python:

import numpy as np x = np.linspace(0, 5, 50) y = np.linspace(0, 5, 40) X, Y = np.meshgrid(x, y) Z = np.sin(X*2+Y)*3 + np.cos(Y+5)

We can use the following code to create a contour plot for the data:

import matplotlib.pyplot as plt plt.contour(X, Y, Z, colors='black')

When a single color is used for the plot, the dashed lines represent negative values and the solid lines represent positive values.

An alternative is to specify a colormap using the **cmap **argument. We can also specify more lines to be used in the plot with the **levels **argument:

plt.contour(X, Y, Z, levels=30, cmap='Reds')

We chose to use the cmap ‘Reds’ but you can find a complete list of colormap options on the Matplotlib documentation page.

**Example 2: Filled Contour Plot in Matplotlib**

A **filled contour plot** is similar to a contour plot except that the spaces between the lines are filled.

The following code shows how to use the **contourf()** function to create a filled contour plot for the same data we used in the previous example:

plt.contourf(X, Y, Z, cmap='Reds')

We can also use the **colorbar() **function to add a labeled color bar next to the plot:

plt.contourf(X, Y, Z, cmap='Reds') plt.colorbar()

*You can find more Matplotlib tutorials here.*