一、基本概念
在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函数进行了详细的介绍和演示。该函数可以方便地创建等高线图和热力图,并且支持多种自定义设置,使得数据更加直观。