使用 Python 创建带误差线的 3D 图表

PythonPythonBeginner
立即练习

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

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

简介

在本教程中,我们将学习如何使用 Python 的 Matplotlib 库创建带有误差线的 3D 图。误差线是数据可变性的图形表示,常用于科学和工程领域,以显示测量或统计估计中的不确定性。

虚拟机提示

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") matplotlib/PlottingDataGroup -.-> matplotlib/error_bars("Error Bars") python/DataStructuresGroup -.-> python/tuples("Tuples") 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-48717{{"使用 Python 创建带误差线的 3D 图表"}} matplotlib/figures_axes -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} matplotlib/error_bars -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} python/tuples -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} python/importing_modules -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} python/numerical_computing -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} python/data_visualization -.-> lab-48717{{"使用 Python 创建带误差线的 3D 图表"}} end

导入库

首先,我们需要导入必要的库,即 Matplotlib 和 NumPy。NumPy 是一个数值计算库,提供对数组和矩阵的支持,而 Matplotlib 是一个数据可视化库。

import matplotlib.pyplot as plt
import numpy as np

创建一个 3D 图

接下来,我们通过使用 figure 对象的 add_subplot 方法来创建一个 3D 图。我们将 projection 参数设置为 '3d',以指定我们想要一个 3D 图。

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

生成图表数据

我们通过创建一条参数曲线来生成图表数据。参数曲线是一组方程,它将 x、y 和 z 坐标描述为一个参数的函数。我们使用 NumPy 的 arange 函数创建一个从 0 到 2π 的值数组。然后,我们使用这些值通过三角函数来计算 x、y 和 z 坐标。

t = np.arange(0, 2*np.pi+.1, 0.01)
x, y, z = np.sin(t), np.cos(3*t), np.sin(5*t)

给图表添加误差线

我们使用 Axes3D 对象的 errorbar 方法给图表添加误差线。我们将 zuplimszlolims 参数设置为数组,这些数组指定了哪些数据点有上限和下限。我们设置 errorevery 参数来控制误差线的频率。

estep = 15
i = np.arange(t.size)
zuplims = (i % estep == 0) & (i // estep % 3 == 0)
zlolims = (i % estep == 0) & (i // estep % 3 == 2)

ax.errorbar(x, y, z, 0.2, zuplims=zuplims, zlolims=zlolims, errorevery=estep)

自定义图表

我们可以通过使用 set_xlabelset_ylabelset_zlabel 方法为 x、y 和 z 轴添加标签来自定义我们的图表。

ax.set_xlabel("X label")
ax.set_ylabel("Y label")
ax.set_zlabel("Z label")

显示图表

最后,我们使用 show 方法来显示我们的图表。

plt.show()

总结

在本教程中,我们学习了如何使用 Matplotlib 创建带有误差线的三维图表。我们使用 NumPy 生成图表数据,并使用 errorbar 方法添加误差线。我们还通过为 x、y 和 z 轴添加标签来自定义我们的图表。