Matplotlib Errorbar怎么画误差条?

文章导读
Previous Quiz Next 误差条是一种图形表示形式,用于显示一组数据中的不确定性或变异量。它由从图表上数据点延伸出的线条组成,用以指示真实值可能位于的范围。
📋 目录
  1. Matplotlib 中的误差条
  2. errorbar() 函数
  3. 示例 - 基本误差条图
  4. 示例 - 水平误差条
  5. 误差 - 非对称误差条
  6. 示例 - 抽样误差条
A A

Matplotlib - 误差条



Previous
Quiz
Next

误差条是一种图形表示形式,用于显示一组数据中的不确定性或变异量。它由从图表上数据点延伸出的线条组成,用以指示真实值可能位于的范围。

想象一下,你每周测量一次植物的高度,持续一个月。每次测量时,由于天气变化等因素,可能会有一些变异。图表上的误差条将显示每个高度测量的可能值范围,让你了解对数据准确性的置信程度 −

Errorbar

Matplotlib 中的误差条

我们可以使用 errorbar() function 在 Matplotlib 中创建误差条。它允许你在 x 和 y 方向上表示不确定性,因此适用于各种类型的图表(如散点图、折线图或条形图)中绘制误差条。

errorbar() 函数

Matplotlib 中的 errorbar() 函数接受 x 和 y 坐标,并指示数据点的不确定性。该函数特别适用于可视化每个数据点周围的可能值范围,从而更好地理解测量的确定性或不确定性。

语法

以下是 Matplotlib 中 errorbar() 函数的语法 −

matplotlib.pyplot.errorbar(x, y, yerr=None, xerr=None, fmt='', barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, errorevery=1, capthick=None, *, data=None, **kwargs)

其中,

  • x 是数据点的 x 坐标。
  • y 是数据点的 y 坐标。
  • yerr 是 y 方向的误差。可以是标量或数组。
  • xerr 是 x 方向的误差。可以是标量或数组。
  • fmt 是控制线条和标记外观的格式代码。
  • 如果 barsabove 为 True,则误差条绘制在数据点上方。
  • lolims, uplims, xlolims, xuplims 是布尔值,表示误差是否代表下限/上限,或者是否指定了 x 限制。
  • errorevery 通过整数因子对误差条进行子采样。
  • capthick 是误差条端盖的厚度。

示例 - 基本误差条图

Matplotlib 中的基本误差条图是对数据点及其相关不确定性(误差)的可视化表示。它使用 errorbar() 函数形成,为每个数据点添加垂直或水平的误差条。

在以下示例中,我们创建一个简单的误差条图。我们定义了 'x' 和 'y' 数据点以及对应的 'y-error' 值。然后使用 errorbar() 函数绘制带误差条的数据 −

import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 5, 6]
y_error = [0.5, 0.3, 0.4, 0.2, 0.6]

# 创建基本误差条图
plt.errorbar(x, y, yerr=y_error, fmt='o', label='Data with Errorbars')

# 自定义图表
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('基本误差条图')
plt.legend()

# 显示图表
plt.show()

输出

执行上述代码后,我们将得到以下输出 −

Basic Errorbar Plot

示例 - 水平误差条

Matplotlib 中的水平误差条图是一种数据点的视觉表示,带有水平方向的不确定性。它使用 errorbar() 函数创建,误差条水平绘制,以显示 x 方向的变异性或区间。

在这里,我们正在创建一个带有水平误差条的图表。我们首先定义 y 和 x 数据点以及对应的 x 误差值。然后使用 errorbar() 函数创建带有水平误差条的图表 −

import matplotlib.pyplot as plt

# 数据
y = [1, 2, 3, 4, 5]
x = [2, 4, 3, 5, 6]
x_error = [0.2, 0.3, 0.4, 0.1, 0.5]

# 创建水平误差条
plt.errorbar(x, y, xerr=x_error, fmt='o', label='Data with Horizontal Errorbars')

# 自定义图表
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Horizontal Errorbar Plot')
plt.legend()

# 显示图表
plt.show()

输出

以上代码的输出如下 −

Horizontal Errorbars

误差 - 非对称误差条

在 Matplotlib 中,非对称误差条允许您表示每个数据点周围正负方向的不同不确定性或变异水平。当您的测量误差不对称时,这非常有用。

您可以通过向 “yerr” 或 “xerr” 参数提供两个数组的列表来自定义 errorbar() 函数来处理非对称误差条,其中第一个数组对应负误差,第二个数组对应正误差。

现在,我们正在创建非对称误差条。“yerr” 参数接受两个数组的列表,分别表示负误差和正误差。这允许每个方向具有不同的误差幅度 −

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 5, 6]
y_error_neg = [0.5, 0.3, 0.4, 0.2, 0.6]
y_error_pos = [0.2, 0.1, 0.3, 0.4, 0.5]

plt.errorbar(x, y, yerr=[y_error_neg, y_error_pos], fmt='o', label='Asymmetric Error Bars')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Asymmetric Error Bars')
plt.legend()
plt.show()

输出

以上代码的输出如下 −

Asymmetric Error Bars

示例 - 抽样误差条

Matplotlib 中的抽样误差条类似于选择性地仅显示一部分误差条,以提高图表的清晰度并减少视觉噪声。errorbar() 函数为此提供了 “errorevery” 参数。

通过将 “errorevery” 设置为大于 1 的整数值,您可以对误差条进行抽样,仅显示每 N 个误差条,其中 N 是 errorevery 的值。

在给定的示例中,我们生成一个带有误差条的散点图。我们定义 x 和 y 数据点,以及用于误差条的 “y_error” 值。误差条使用紫色 'o' 标记绘制,并每 2 个数据点显示一次,从而减少噪声 −

import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 3, 5, 6]
y_error = [0.5, 0.3, 0.4, 0.2, 0.6]

# 创建带有抽样的误差条
plt.errorbar(x, y, yerr=y_error, fmt='o', color='purple', errorevery=2, label='Subsampled Errorbars')

# 自定义图表
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Subsampled Errorbars Plot')
plt.legend()

# 显示图表
plt.show()

输出

获得的输出如下所示 −

Subsampled Errorbars