使用 Matplotlib 进行 3D 曲面和等高线绘图

Beginner

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

简介

本实验演示了如何使用 Matplotlib 创建 3D 曲面图,并将等高线“轮廓”投影到图形的壁上。

虚拟机使用提示

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

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

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

导入必要的库

在这一步中,我们将导入创建 3D 曲面图和投影等高线轮廓所需的库。

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

创建 3D 图形和数据

在这一步中,我们将创建一个 3D 图形并获取用于曲面图的测试数据。

## 创建一个 3D 图形
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

## 获取用于曲面图的测试数据
X, Y, Z = axes3d.get_test_data(0.05)

绘制 3D 曲面

在这一步中,我们将使用测试数据绘制 3D 曲面,并自定义图形的外观。

## 绘制 3D 曲面
ax.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.3)

## 自定义图形的外观
ax.set(xlim=(-40, 40), ylim=(-40, 40), zlim=(-100, 100), xlabel='X', ylabel='Y', zlabel='Z')

将等高线轮廓投影到图形壁上

在这一步中,我们将通过为每个维度绘制具有适当偏移量的等高线,把等高线轮廓投影到图形壁上。

## 绘制每个维度的等高线投影
ax.contour(X, Y, Z, zdir='z', offset=-100, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='x', offset=-40, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='y', offset=40, cmap='coolwarm')

显示图形

在这一步中,我们将显示带有投影等高线轮廓的 3D 曲面图。

plt.show()

总结

本实验展示了如何使用 Matplotlib 创建 3D 曲面图并将等高线轮廓投影到图形壁上。步骤包括导入必要的库、创建 3D 图形和数据、绘制 3D 曲面、投影等高线轮廓以及显示图形。