简介
在本教程中,我们将学习如何使用 Python 的 Matplotlib 库创建带有误差线的 3D 图。误差线是数据可变性的图形表示,常用于科学和工程领域,以显示测量或统计估计中的不确定性。
虚拟机提示
虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。
导入库
首先,我们需要导入必要的库,即 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 方法给图表添加误差线。我们将 zuplims 和 zlolims 参数设置为数组,这些数组指定了哪些数据点有上限和下限。我们设置 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_xlabel、set_ylabel 和 set_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 轴添加标签来自定义我们的图表。