了解 meshgrid () 和 contourf() 方法

machine learningpythonnumpy

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

什么是 Meshgrid()?

Meshgrid() 是一个函数,它生成一个坐标网格,用于在 2D 或 3D 显示屏上绘制函数。 meshgrid() 函数需要两个 1D 数组,它会在两个 2D 数组中返回网格中每个点的 X 和 Y 坐标。在创建热图和轮廓图等可视化效果时,需要创建点网格,这种技术非常有用。数据科学家可以利用强大的 meshgrid() 函数显示大量复杂的数据集,以便找到原始数据或表格中可能无法立即显现的模式和趋势。

meshgrid() 函数的语法如下 −

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

网格上每个点的 X 和 Y 坐标可以用我们可以构建的 2D 数组表示。可以将 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() 是数据分析师工具包中的关键工具,应充分利用它们来从复杂数据中获取见解。


相关文章