理解 meshgrid() 和 contourf() 方法


数据分析和理解在很大程度上依赖于数据可视化。对于流行的编程语言 Python,有几个库可以帮助进行数据可视化。数据科学家经常使用 meshgrid() 和 contourf() 生成 2D 和 3D 图形,因为它们是促进复杂数据集显示的极佳工具。对于构建各种可视化(如热图和等值线图)的点网格,Meshgrid() 是一种非常有用的方法。在这篇博文中,我们将讨论两种重要的方法:meshgrid() 和 contourf()。这些方法对于三维数据的二维可视化至关重要。

什么是 Meshgrid()?

Meshgrid() 是一个函数,用于生成坐标网格,以便在 2D 或 3D 显示上绘制函数。meshgrid() 函数需要两个 1D 数组,并返回网格中每个点的 X 和 Y 坐标,这两个坐标存储在两个 2D 数组中。在创建需要生成点网格的可视化(如热图和等值线图)时,此方法非常有用。数据科学家可以使用强大的 meshgrid() 函数来显示大型复杂数据集,以查找可能无法从原始数据或表格中直接发现的模式和趋势。

meshgrid() 函数的语法如下:

X, Y = np.meshgrid(x, y)

我们可以创建两个 2D 数组来表示网格上每个点的 X 和 Y 坐标。为此,我们可以连接 1D 数组 X 和 Y。

现在,如果我们想在三维空间中查看此网格,我们还需要为每个网格点生成 Z 坐标。为此,我们可以使用一个函数,该函数将为每个点分配与 X、Y 和 Z 值相对应的坐标。使用这些 3D 坐标,我们可以创建令人惊叹的可视化效果,真正使我们的数据栩栩如生。

示例

在以下示例中,我们首先使用 linspace() 方法创建两个名为 x 和 y 的 1D 数组。在拥有这些数组后,我们将使用它们使用 meshgrid 方法 () 创建坐标网格。

接下来,我们将创建一个名为 Z 的数组,其中存储每个网格点的 Z 坐标。最后,我们可以使用 plot_surface() 方法以三维方式可视化此数据。这是一种了解数据当前状态和网格范围分布的绝佳方法。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sqrt(X**2 + Y**2)

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(X, Y, Z)
plt.show()

输出

什么是 Contourf()?

Contourf() 是一种在数据可视化中创建填充等值线图的常用方法。它是 matplotlib 包的一部分,使我们能够生成 3D 数据的流畅 2D 表示。此方法显示一系列与特定数据值对应的等值线,这对于发现数据中的模式和趋势非常有用。由于等值线之间的填充区域使用不同的颜色着色,因此我们可以立即轻松地识别具有相似值的区域。因此,contourf() 是浏览和理解复杂数据集的有用工具。它也非常灵活,允许用户更改诸如等值线数量和用于表示数据的颜色方案等元素。

contourf() 函数的语法如下:

plt.contourf(X, Y, Z)

其中 X 和 Y 是数据的 X 和 Y 坐标,Z 是其 Z 值。contourf() 函数将数据绘制为填充等值线。

示例

在这个示例中,我们首先使用 linspace() 方法创建 x 和 y 数组。接下来,根据这些数组,meshgrid() 方法创建一个坐标网格。在获得网格后,我们为每个点生成 Z 坐标,然后将它们存储在一个名为 Z 的数组中。

最后,contourf() 函数以 2D 方式显示数据。此方法通过用一系列等值线连接具有相同数据值的点并用不同的颜色填充线之间的空间,从而更容易查看数据中的模式。它可以成为探索和分析复杂数据集的强大工具,并且是获得我们数据整体形状和结构感觉的特别有效的方法。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

plt.contourf(X, Y, Z)
plt.show()

输出

结论

总之,每个数据分析师或科学家都应该掌握 meshgrid() 和 contourf() 算法。这些例程为复杂数据的二维和三维可视化提供了一种简单而有效的方法。虽然 contourf() 生成一个完整的等值线图,表示 3D 数据的 2D 投影,但 meshgrid() 允许开发坐标网格以在 2D 或 3D 图上可视化函数。使用这些方法,数据分析师和科学家可以快速生成其数据的引人注目的表示,从而更容易理解和分析。最终,meshgrid() 和 contourf() 是数据分析师工具包中的关键工具,应充分利用它们来从复杂数据中提取见解。

更新于: 2023 年 4 月 25 日

865 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告