如何在 python 中向图表添加误差线


通常,您可能希望在 Python 中的图形中添加误差线,以捕获测量值或计算值的不确定性。幸运的是,使用 matplotlib 库可以轻松做到这一点。

本教程介绍如何在 Python 中向条形图和折线图添加误差线。

条形图中的误差线

假设我们在Python中有以下10个值的数据集:

 import numpy as np
import matplotlib.pyplot as plt

#define dataset
data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20]

要为此数据集创建带有误差线的条形图,我们可以将误差线的宽度设置为标准误差,其计算公式为

标准误差 = s / √n

金子:

  • s:样本标准差
  • n:样本量

以下代码显示了如何计算此示例的标准误差:

 #calculate standard error
std_error = np.std(data, ddof=1) / np.sqrt(len(data))

#view standard error
std_error

1.78

最后,我们可以使用宽度等于标准误差的误差条创建条形图:

 #define chart 
fig, ax = plt.subplots()

#create chart
ax.bar(x=np.arange(len(data)), #x-coordinates of bars
       height=data, #height of bars
       yerr=std_error, #error bar width
       capsize=4) #length of error bar caps 

Python 中带有误差线的条形图

标准误差结果为1.78 。这是从图表上的点估计值开始向任一方向延伸的误差条的宽度。例如,图表中第一个条形的值为 4,因此它的误差条延伸自:

  • 下端:4 – 178 = 2.22
  • 顶端:4 + 1.78 = 5.78

图表中的每个误差条的宽度相同。

折线图中的误差线

以下代码显示如何为同一数据集创建带有误差线的折线图:

 import numpy as np
import matplotlib.pyplot as plt

#define data
data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20]

#define x and y coordinates
x = np.arange(len(data))
y = data

#create line chart with error bars
fig, ax = plt.subplots()

ax.errorbar(x, y,
            yerr=std_error,
            capsize=4) 

Python 中带有误差线的折线图

请注意, yerr参数告诉 Python 创建垂直误差线。我们可以使用xerr参数来使用水平竖线:

 #create line chart with horizontal error bars
fig, ax = plt.subplots()

ax.errorbar(x, y,
            xerr =std_error,
            capsize=4) 

Python 图表中的误差线

您可以在此处找到更多 Python 教程。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注