在 Python 中绘制等高线图时,可以通过设置等高线的密度来调整等高线的数量和分布。等高线的密度可以通过 levels
参数来设置,该参数可以接受一个列表或整数,用于指定等高线的数量或数值。下面是一个简单的示例,展示如何设置等高线的密度:
import numpy as np import matplotlib.pyplot as plt # 定义一个函数 def f(x, y): return np.sin(x) + np.cos(y) # 定义自变量的取值范围 x = np.linspace(-np.pi, np.pi, 100) y = np.linspace(-np.pi, np.pi, 100) X, Y = np.meshgrid(x, y) # 计算函数的取值 Z = f(X, Y) # 绘制等高线图 levels = [i/10 for i in range(-10, 11)] plt.contour(X, Y, Z, levels=levels, cmap='viridis') plt.colorbar() plt.show()
在上面的代码中,我们定义了一个函数 f(x, y)
,并指定了自变量 x
和 y
的取值范围。然后,使用 meshgrid
函数生成自变量的网格点坐标,并计算每个点的函数值。最后,使用 contour
函数绘制等高线图,并通过 levels
参数设置了等高线的密度。
在上面的代码中,我们将 levels
参数设置为一个列表,该列表包含了等高线的数值。在这个例子中,我们设置了 21 条等高线,每条等高线的数值相差 0.1。如果想要设置等高线的数量,可以使用整数值代替列表,例如 levels=10
代表绘制 10 条等高线。如果不指定 levels
参数,则 Matplotlib 会自动根据函数的取值范围和曲线的形状选择适当的等高线数量和间隔。