Python Matplotlib 3D等高线图

2025年3月6日 | 阅读 6 分钟

3D 等高线是指描绘物体在三维空间中高度和形状的线或曲线。这些等高线有助于我们理解物体不同部分的 the height and depth。它们经常用于工程、地理和艺术等领域,以更精细的深度描绘物体的形状。

Matplotlib 中,一个 Python 脚本通过将轮廓线投射到 XY 平面来创建 3D 等高线图。它生成数据点,以三维方式显示等高线,将轮廓线添加到 XY 平面,使用函数计算 z 值,并在呈现前修改绘图。

例如,如果你有一座山,它的 3D 等高线将从每个角度显示山峰、山谷和斜坡。同样,从不同角度看,一个动物雕塑的 3D 轮廓将描绘出动物头部、四肢和身体的形状。

Python Matplotlib 3D Contours

Matplotlib 中的 3D 等高线

Matplotlib 中的 3D 等高线以三维方式描绘物体的表面。通过将数据点输入为 x、y 和 z 坐标,您可以生成 3D 等高线图。这些点定义了您希望看到的物体的形状。然后,Matplotlib 可以将您的 3D 数据的等高线表示为轮廓线或表面。

使用 "mpl_toolkits.mplot3d" 模块的 contour3D() 函数,您可以使用 Matplotlib 生成三维等高线。此函数在 X 和 Y 坐标上绘制一条线,以显示 3D 物体沿 z 轴的轮廓或高度变化。它将 X、Y 和 Z 三个坐标作为数组输入。

让我们从创建一个简单的 3D 形状开始。

基本 3D 等高线

在 Matplotlib 中,简单的三维等高线类似于在地图上绘制等高线。X、Y 和 Z 轴用于显示表面高度在不同位置的变化情况。

示例

在接下来的示例中,创建简单 3D 等高线的第一步是绘制 X 和 Y 坐标。接下来,我们通过添加 X 和 Y 的正弦和余弦值来计算高度变化。生成的图形显示了形状在 Z 轴上不同高度的等高线。

输出

Python Matplotlib 3D Contours

说明

此 Python 程序使用 Matplotlib 和 NumPy 创建了一个简单的 3D 等高线图。它首先使用 np.linspace() 和 np.meshgrid() 设置 X、Y 和 Z 轴的坐标来生成数据点。然后,它使用一个数学方程来计算 Z 值。代码使用 plt.figure() 和 axe 创建一个 3D 图,创建等高线,为轴添加标签,并使用 plt.show() 显示它。

参数化 3D 等高线

Matplotlib 使用数学参数在三维空间中表示不同高度的形状轮廓,即参数化三维等高线。等高线还由 X、Y 和 Z 坐标的变化以及参数的变化决定。

示例

3D 物体的尺寸 (R)、厚度 (r) 和起始位置 (u, v) 定义了其 X、Y 和 Z 坐标。这会生成一个类似甜甜圈的三维形状。

输出

Python Matplotlib 3D Contours

说明

此 Python 脚本使用 Matplotlib 和 NumPy 创建了甜甜圈的参数化 3D 等高线图。它定义了一个参数函数,该函数根据给定的参数(例如,大半径 (R) 和小半径 (r))生成甜甜圈坐标。使用提供的参数和输入变量,函数 torus_parametric() 计算 X、Y 和 Z 坐标。它使用 np.meshgrid() 生成 u 和 v 值的网格,然后使用该网格计算甜甜圈坐标。脚本使用 plt.figure() 和 axe = fig.add_subplot(111, projection='3d') 生成一个 3D 图。接下来,它使用 ax.contour3D() 绘制等高线。将标题和轴标签作为自定义的一部分添加,然后使用 plt.show() 显示该图。

来自不规则数据的 3D 等高线

Matplotlib 中的不规则数据的 3D 等高线显示了具有随机分布数据点的 3D 表面的总体形状。对于这种等高线,我们根据 X、Y 和 Z 值进行估算,以计算缺失的数据点。

示例

以下示例使用不规则数据生成了 3D 等高线。在这种情况下,我们计算缺失的数据点并使用可用数据点进行线性插值。因此,会生成连续平滑的 3D 等高线。

输出

Python Matplotlib 3D Contours

说明

此 Python 脚本演示了如何使用 Matplotlib 和 SciPy 中的 griddata 函数,使用间隔不均匀的数据构建 3D 等高线图。它创建了任意间隔不均匀的数据点 (x, y),并使用正弦函数计算相应的 z 值。脚本首先使用 np.linspace() 创建一个规则网格 (xi, yi),然后使用 griddata() 将不规则数据拟合到该网格上。使用 ax.contour3D(),它创建了一个带有等高线的 3D 图,添加了标签和标题,然后使用 plt.show() 显示该图。

3D 等高线中的等高线

Matplotlib 的 3D 等高线以图形方式表示物体的三维等高线和相关的等高线。由于等高线没有深度且没有 Z 值,因此它们显示在 XY 平面上,并指示 3D 等高线的斜率。要显示物体的等高线,请使用 "contour()" 方法。

示例

我们现在正在生成一个物体的 3D 等高线和等高线。我们在 XY 平面上绘制等高线,并在 z 轴上绘制 3D 等高线。生成的图形显示了物体在 XY 平面上的斜率以及其在 z 轴上的轮廓。

输出

Python Matplotlib 3D Contours

说明

此 Python 程序通过将等高线投影到 XY 平面来创建 3D 等高线图。它使用 numpy 中的 linspace() 和 meshgrid() 方法构建数据点,然后使用正弦函数计算相应的 z 值。该脚本使用 Matplotlib 构建 3D 图,使用 ax.contour3D() 绘制等高线,并使用 ax.contour() 将等高线添加到 XY 平面。之后,它为图形添加轴标签和标题,并使用 plt.show() 显示它。