了解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)
网格上每个点的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包的一个组件,可以用来生成流畅的二维表示三维数据的图形。这种技术显示了一系列与特定数据值相关的等高线,非常有助于发现数据中的模式和趋势。由于等高线之间的填充区域被着上不同的色调,我们可以立即和轻松地识别出具有相似值的区域。因此,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()生成一个完整的轮廓图来表示三维数据的二维投影,但meshgrid()允许在二维或三维图上开发一组坐标来可视化函数。数据分析师和科学家们可以使用这些方法迅速产生有吸引力的数据表示,从而使理解和分析更加简单。最终,meshgrid()和contourf()是数据分析师工具包中至关重要的工具,应该充分利用它们从复杂数据中获取洞察力。