使用 Matplotlib 创建三维表面图

PythonPythonBeginner
立即练习

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

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

简介

本实验演示如何使用 Python 中的 Matplotlib 创建三维表面图。表面使用纯色绘制。本实验将指导你完成该过程的每一步,包括创建数据、绘制表面以及设置纵横比。

虚拟机提示

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/comments("Comments") python/DataStructuresGroup -.-> python/tuples("Tuples") matplotlib/AdvancedPlottingGroup -.-> matplotlib/3d_plots("3D Plots") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} matplotlib/figures_axes -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} python/comments -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} python/tuples -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} matplotlib/3d_plots -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} python/importing_modules -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} python/numerical_computing -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} python/data_visualization -.-> lab-48970{{"使用 Matplotlib 创建三维表面图"}} end

导入所需库

第一步是导入所需的库。在本实验中,我们使用 Matplotlib 和 NumPy 库。

import matplotlib.pyplot as plt
import numpy as np

创建数据

下一步是为三维表面创建数据。我们需要定义 uvxyz。这些变量将表示绘制表面所需的角度和坐标。使用 NumPy 的 linspace() 函数创建角度,使用 outer() 函数创建坐标。

## 生成数据
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

创建三维表面图

现在我们可以创建三维表面图了。我们首先创建一个图形,并使用 projection='3d' 参数添加一个子图。然后,我们使用 plot_surface() 函数,根据上一步创建的数据绘制表面。

## 绘制表面
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(x, y, z)

设置纵横比

为确保绘图具有相等的纵横比,我们可以使用 set_aspect() 函数。我们传入字符串值 'equal' 以将纵横比设置为 1:1。

## 设置相等的纵横比
ax.set_aspect('equal')

总结

本实验展示了如何使用 Python 中的 Matplotlib 创建三维表面图。我们创建了数据、绘制了表面并设置了纵横比。最终得到的图是一个具有纯色的基本三维表面图。