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

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验演示了如何使用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曲面、投影等高线轮廓以及显示图形。