将填充等高线投影到三维图形上

Beginner

This tutorial is from open-source community. Access the source code

简介

本实验将指导你创建一个三维表面图,图的壁上投影有填充等高线轮廓。这是一种用于理解复杂三维数据的有用可视化技术。我们将使用 Python 的 Matplotlib 库来创建该图。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入库

我们将首先导入必要的库。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

创建三维坐标轴

接下来,我们将使用 add_subplot 方法创建一个三维坐标轴对象。

ax = plt.figure().add_subplot(projection='3d')

创建数据

我们将使用 axes3d.get_test_data 方法为我们的图形创建示例数据。

X, Y, Z = axes3d.get_test_data(0.05)

绘制三维表面

我们将使用 plot_surface 方法绘制三维表面。我们还将设置一些参数,如边缘颜色、线宽和透明度。

ax.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.3)

投影等高线轮廓

现在我们将把等高线轮廓投影到图形的壁面上。这通过 contourf 方法来完成。我们将把 zdir 参数设置为 'z'、'x' 和 'y',以便分别将等高线轮廓投影到 z、x 和 y 壁面上。我们还将设置 offset 参数以匹配适当的坐标轴范围。

ax.contourf(X, Y, Z, zdir='z', offset=-100, cmap='coolwarm')
ax.contourf(X, Y, Z, zdir='x', offset=-40, cmap='coolwarm')
ax.contourf(X, Y, Z, zdir='y', offset=40, cmap='coolwarm')

设置图形的范围和标签

最后,我们将设置图形坐标轴的范围和标签。

ax.set(xlim=(-40, 40), ylim=(-40, 40), zlim=(-100, 100), xlabel='X', ylabel='Y', zlabel='Z')

总结

本实验提供了一个逐步指南,用于创建一个带有投影到图形壁面上的填充等高线轮廓的三维表面图。我们使用了 Python 的 Matplotlib 库来创建该图形。