Home > Backend Development > Python Tutorial > Draw contour plots using Python Matplotlib

Draw contour plots using Python Matplotlib

WBOY
Release: 2023-08-30 19:05:01
forward
1633 people have browsed it

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.

Install using pip

We can easily install the latest stable package of Matplotlib from PyPi by executing the following command in the command prompt.

pip install Matplotlib
Copy after login

You can install Matplotlib via conda using the following command -

conda install -c conda-forge matplotlib
Copy after login

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)
Copy after login

Matplotlib provides two functions plt.contour and plt.contourf to draw contour plots.

contour() method

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)
Copy after login

parameter

  • [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.

Example

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()
Copy after login

Output

使用Python Matplotlib绘制等高线图

The f(x,y) function is defined using numpy trigonometric functions.

Example

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()
Copy after login

Output

使用Python Matplotlib绘制等高线图

The z function is the sum of the square roots of the x and y coordinate values. Implemented using the numpy.sqrt() function.

contourf() 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)
Copy after login

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.

Example

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()
Copy after login

Output

使用Python Matplotlib绘制等高线图

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.

Example

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()
Copy after login

Output

使用Python Matplotlib绘制等高线图

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!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template