使用 Matplotlib 创建误差线图

Beginner

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

简介

误差线用于图表中,以显示测量值或数据点中的潜在误差或不确定性。Python Matplotlib 是一个流行的数据可视化库,它提供了不同类型的误差线图。在本实验中,我们将学习如何使用 Matplotlib 创建具有上限和下限的误差线图。

虚拟机使用提示

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

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

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

导入所需库

我们将首先导入所需的库,包括 NumPy 和 Matplotlib。

import matplotlib.pyplot as plt
import numpy as np

定义数据

接下来,我们将定义一些用于绘图的示例数据。在这里,我们将创建一个包含 x 值、y 值及其相应误差值的数组。

x = np.array([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0])
y = np.exp(-x)
xerr = 0.1
yerr = 0.2

创建简单误差线图

我们将使用errorbar函数创建一个带有标准误差线的简单误差线图。在这里,我们将设置 x 和 y 值以及它们相应的误差值。我们还将把线条样式设置为虚线。

fig, ax = plt.subplots(figsize=(7, 4))

## 标准误差线
ax.errorbar(x, y, xerr=xerr, yerr=yerr, linestyle='dotted')

添加上限

要给误差线添加上限,我们将使用errorbar函数的uplims参数。我们还将给 y 值加上一个常数 0.5,以便将此图与前一个图区分开来。

## 包括上限
ax.errorbar(x, y + 0.5, xerr=xerr, yerr=yerr, uplims=True, linestyle='dotted')

添加下限

要给误差线添加下限,我们将使用errorbar函数的lolims参数。我们还将给 y 值加上一个常数 1.0,以便将此图与之前的图区分开来。

## 包括下限
ax.errorbar(x, y + 1.0, xerr=xerr, yerr=yerr, lolims=True, linestyle='dotted')

添加上限和下限

要给误差线同时添加上限和下限,我们将使用errorbar函数的uplimslolims参数。我们还将在图中添加一个标记,以便将其与之前的图区分开来。

## 包括上限和下限
ax.errorbar(x, y + 1.5, xerr=xerr, yerr=yerr, lolims=True, uplims=True,
            marker='o', markersize=8, linestyle='dotted')

给 X 轴和 Y 轴都添加限制

最后,我们将给 X 轴和 Y 轴都添加限制。我们将使用xlolimsxuplims参数给 X 轴误差线添加限制。

## 绘制一个在 X 和 Y 方向都有下限和上限的序列
## X 误差恒定,Y 误差变化
xerr = 0.2
yerr = np.full_like(x, 0.2)
yerr[[3, 6]] = 0.3

## 通过修改之前的数据模拟一些限制
xlolims = lolims
xuplims = uplims
lolims = np.zeros_like(x)
uplims = np.zeros_like(x)
lolims[[6]] = True  ## 仅在此索引处有限制
uplims[[3]] = True  ## 仅在此索引处有限制

## 进行绘图
ax.errorbar(x, y + 2.1, xerr=xerr, yerr=yerr,
            xlolims=xlolims, xuplims=xuplims,
            uplims=uplims, lolims=lolims,
            marker='o', markersize=8, linestyle='none')

显示图表

最后,我们将使用show函数来显示图表。

## 整理图表
ax.set_xlim((0, 5.5))
ax.set_title('误差线的上限和下限')
plt.show()

总结

在本实验中,我们学习了如何使用 Matplotlib 创建带有上限和下限的误差线图。我们使用errorbar函数创建了具有上限和下限的不同图表。我们还学习了如何给 X 轴和 Y 轴都添加限制。