Matplotlib - 等高线图



等高线图,也称为等高线图或水平图,是三维曲面在二维平面上的图形表示。

在等高线图中,曲面由一系列等高线表示。每条等高线连接曲面上值相等的点,显示函数值相同的区域。这些等高线以恒定间隔或“水平”绘制,因此称为“水平图”。

想象一下,你有一张地图上的温度等高线图。每条等高线代表温度相同的区域,例如 50°F、60°F 等。通过查看该图,您可以轻松地查看地图上哪个地方更热或更冷。

Contours Plots

Matplotlib 中的等高线图

您可以使用 "matplotlib.pyplot" 模块中的 contour() 函数在 Matplotlib 中创建等高线图。此函数接受 X 和 Y 坐标作为一维或二维数组,表示评估函数 "Z" 的网格。"Z" 是一个二维数组,包含与 X 和 Y 定义的网格点对应的函数值。

让我们从绘制基本的等高线图开始。

基本等高线图

Matplotlib 中的基本 3D 等高线显示连接值相等的点的等高线,表示数据的水平或“高度”。每条等高线对应一个特定值,形成数据集的类似地图的表示。

示例

在下面的示例中,我们创建一个基本的等高线图。我们定义网格的 x 和 y 坐标,然后使用数学函数生成 z 值。使用这些 x、y 和 z 值,我们使用 contour() 函数创建等高线图。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

# Creating contour plot
plt.contour(X, Y, Z)

# Adding labels and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Basic Contour Plot')

# Displaying the plot
plt.show()
输出

以下是上述代码的输出。

Basic Contour Plot

填充等高线图

在 Matplotlib 的填充等高线图中,它不是只显示等高线,而是用颜色填充线条之间的区域,创建数据的阴影表示。每种颜色代表数据的不同水平或“高度”,使您可以轻松查看数据集中数据的分布。

示例

在这里,我们使用 contourf() 函数创建一个填充等高线图,该函数为等高线之间的区域着色。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

# Creating a filled contour plot
plt.contourf(X, Y, Z)

# Adding labels and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Filled Contour Plot')

# Displaying the plot
plt.show()
输出

执行上述代码后,我们将获得以下输出。

Filled Contour Plot

具有特定水平线的等高线图

在具有特定水平线的等高线图中,您指定要绘制等高线的水平线。每条等高线连接值相等的点,表示数据的不同水平或“高度”。这使您可以自定义可视化效果,以突出显示数据集中特定特征或区间。

示例

在此示例中,我们使用 Matplotlib 指定特定等高线水平来自定义等高线图。在生成数据并创建等高线图之后,我们在 contour() 函数中使用 levels 参数来定义等高线水平。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

# Defining contour levels
levels = np.linspace(-1, 1, 20)

# Creating contour plot with specific levels
plt.contour(X, Y, Z, levels=levels)

# Adding labels and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Contour Plot with Specific Levels')

# Displaying the plot
plt.show()
输出

执行上述代码后,我们将获得以下输出。

Contour Plot with Specific Levels

带有颜色条的等高线图

在 Matplotlib 中,带有颜色条的等高线图显示等高线以显示数据集中值相等的点,以及图旁边的颜色条以指示颜色和数据值之间的对应关系。颜色条充当视觉指南,帮助您了解图中不同颜色表示的数据值的范围和分布。

示例

在这里,我们使用 Matplotlib 创建带有颜色条的等高线图。在生成数据并创建等高线图之后,我们使用 colorbar() 函数向图中添加颜色条。此颜色条提供与等高线图对应的 z 值的可视化表示。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)

# Creating a contour plot
contour = plt.contour(X, Y, Z)

# Adding colorbar
plt.colorbar(contour, label='Z-values')

# Adding labels and title
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Contour Plot with Colorbar')

# Displaying the plot
plt.show()
输出

执行上述代码后,我们将获得以下输出。

Contour Plot with Colorbar
广告