您的位置:

探究matplotlib中的contourf函数

一、基本概念

在matplotlib中,contourf是一个函数,它提供了一种用于创建等高线的方法。等高线图常用于展示二维数据的变化情况,例如气温分布图、压强分布图等。

contourf函数能够将二维数据的值映射到颜色空间,并生成一张二维图像,其中每个像素的颜色反映了该位置的数据值。不同的颜色可以表示不同的数据范围,因此该函数也常用于制作热力图。

二、调用方法

使用contourf函数,首先需要将数据传递给它。如果使用默认设置,该函数将生成11条等高线,并使用默认的调色板。

下面的代码演示将数据传递给contourf函数,创建一个等高线图:

import numpy as np
import matplotlib.pyplot as plt

# 创建x, y和z的值,z表示等高线高度
x = np.linspace(-3, 3, 256)
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 绘制等高线
plt.contourf(X, Y, Z)
plt.show()

三、自定义设置

在实际应用中,我们通常需要对等高线图进行自定义设置以更好地展示数据。以下列举了几个常见的自定义设置:

1. 调整等高线数量

默认情况下,contourf函数将数据分成11个等高线。如果需要修改这个数量,可以指定levels参数。例如,将等高线数量改为20:

import numpy as np
import matplotlib.pyplot as plt

# 创建x, y和z的值,z表示等高线高度
x = np.linspace(-3, 3, 256)
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 绘制等高线,分成20条等高线
plt.contourf(X, Y, Z, levels=20)
plt.show()

2. 调整颜色映射

默认情况下,contourf函数使用matplotlib内置的颜色映射,该映射将数据线性映射到颜色空间。如果需要使用不同的颜色映射,可以指定cmap参数,例如使用Reds映射:

import numpy as np
import matplotlib.pyplot as plt

# 创建x, y和z的值,z表示等高线高度
x = np.linspace(-3, 3, 256)
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 绘制等高线,使用Reds颜色映射
plt.contourf(X, Y, Z, cmap='Reds')
plt.show()

3. 添加等高线边缘

默认情况下,contourf函数不会绘制等高线的边缘线条。如果需要通过等高线边缘线条来表达数据信息,可以使用contour函数。例如:

import numpy as np
import matplotlib.pyplot as plt

# 创建x, y和z的值,z表示等高线高度
x = np.linspace(-3, 3, 256)
y = np.linspace(-3, 3, 256)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 绘制等高线内部填充和边缘线条
plt.contourf(X, Y, Z, cmap='Reds')
plt.contour(X, Y, Z, colors='black')
plt.show()

四、总结

在本文中,我们对matplotlib中的contourf函数进行了详细的介绍和演示。该函数可以方便地创建等高线图和热力图,并且支持多种自定义设置,使得数据更加直观。