Matplotlib is a free and open source plotting library in Python. It is used to create 2D graphics and plots by using python scripts. To use matplotlib functionality, we need to install the library first.
We can easily install the latest stable package of Matplotlib from PyPi by executing the following command in the command prompt.
pip install Matplotlib
You can install Matplotlib via conda using the following command -
conda install -c conda-forge matplotlib
Contour plot is used to visualize three-dimensional data in a two-dimensional surface by plotting constant z slices, called contours.
It is plotted with the help of the contour function (Z) which is a function of two inputs X and Y (X and Y axis coordinates).
Z = fun(x,y)
Matplotlib provides two functions plt.contour and plt.contourf to draw contour plots.
matplotlib.pyplot. The outline() method is used to draw outline lines. It returns QuadContourSet. The following is the syntax of the function -
contour([X, Y,] Z, [levels], **kwargs)
[X,Y]: Optional parameter, indicating the coordinate of the Z value.
Z: The height value of the drawn outline.
levels: Used to determine the number and location of contour lines/areas.
Let us take an example of drawing contour lines using numpy trigonometric functions.
import numpy as np import matplotlib.pyplot as plt def f(x, y): return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x) xlist = np.linspace(-4.0, 4.0, 800) ylist = np.linspace(-4.0, 4.0, 800) # A mesh is created with the given co-ordinates by this numpy function X, Y = np.meshgrid(xlist, ylist) Z = f(X,Y) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) cp = ax.contour(X, Y, Z) fig.colorbar(cp) # Add a colorbar to a plot ax.set_title('Contour Plot') ax.set_xlabel('x (cm)') ax.set_ylabel('y (cm)') plt.show()
The f(x,y) function is defined using numpy trigonometric functions.
Let’s take another example and draw contour lines.
import numpy as np import matplotlib.pyplot as plt def f(x, y): return np.sqrt(X**2 + Y**2) xlist = np.linspace(-10, 10, 400) ylist = np.linspace(-10, 10, 400) # create a mesh X, Y = np.meshgrid(xlist, ylist) Z = f(X, Y) fig = plt.figure(figsize=(6,5)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) cp = ax.contour(X, Y, Z) ax.set_title('Contour Plot') ax.set_xlabel('x (cm)') ax.set_ylabel('y (cm)') plt.show()
The z function is the sum of the square roots of the x and y coordinate values. Implemented using the numpy.sqrt() function.
matplotlib.pyplot provides a method contourf() to draw filled contours. The following is the syntax of the function -
contourf([X, Y,] Z, [levels], **kwargs)
where,
[X,Y]: Optional parameter, indicating the coordinate of the Z value.
Z: The height value of the drawn outline.
levels: Used to determine the number and location of contour lines/areas.
Let us take another example and use the contourf() method to draw a contour map.
import numpy as np import matplotlib.pyplot as plt xlist = np.linspace(-8, 8, 800) ylist = np.linspace(-8, 8, 800) X, Y = np.meshgrid(xlist, ylist) Z = np.sqrt(X**2 + Y**2) fig = plt.figure(figsize=(6,5)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) cp = ax.contourf(X, Y, Z) fig.colorbar(cp) # Add a colorbar to a plot ax.set_title('Filled Contours Plot') #ax.set_xlabel('x (cm)') ax.set_ylabel('y (cm)') plt.show()
Using the fig.colorbar() method, we add color to the drawing. The z function is the sum of the square roots of the x and y coordinate values.
In this example, we will use the matplotlib.plt.contourf() method to plot a polar contour plot.
import numpy as np import matplotlib.pyplot as plt a = np.radians(np.linspace(0, 360, 20)) b = np.arange(0, 70, 10) Y, X = np.meshgrid(b, a) values = np.random.random((a.size, b.size)) fig, ax = plt.subplots(subplot_kw=dict(projection='polar')) ax.set_title('Filled Contours Plot') ax.contourf(X, Y, values) plt.show()
In all the above examples, we used the numpy.meshgrid() function to generate arrays of X and Y coordinates.
The above is the detailed content of Draw contour plots using Python Matplotlib. For more information, please follow other related articles on the PHP Chinese website!