matplotlib errorbar函数详解:误差线绘制与参数配置指南

拾光
拾光
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍matplotlib中errorbar函数的使用方法,涵盖xerr和yerr参数的多种指定方式,包括标量、数组及多维数组。深入解析fmt、ecolor、elinewidth等样式参数,以及uplims、lolims等控制误差线显示方向的特殊参数,并结合errorevery解决密集数据展示问题,提供完整代码示例与效果说明。

errorbar函数基础与误差范围指定

在matplotlib库中,errorbar函数主要用于绘制带有误差线的折线图。其基础调用方式如下所示。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1)

执行上述代码后,生成的图表效果如下。

yerr参数用于定义Y轴方向的误差范围,同时该函数也支持通过xerr参数定义X轴方向的误差。指定误差值有多种形式,上述代码演示了使用统一标量的方式,此时所有数据点的误差范围均相同。

此外,还可以将误差值指定为与数据点数量一致的数组,从而为每个数据点单独设定误差大小,具体用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=[1, 2, 3, 4])

运行上述代码后的结果如图所示。

考虑到实际应用中每个数据点的上下误差可能不同,errorbar还支持使用行数为2的多维数组来分别指定每个点的上、下误差值,示例代码如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=[[1,2,3,4],[1, 2, 3, 4]])

上述代码执行后的输出结果如下。

xerr参数的使用逻辑与yerr完全一致,此处不再重复赘述,仅给出一个示例。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], xerr=1)

对应的输出结果如下。

errorbar函数允许同时指定xerr和yerr参数,以实现双向误差的展示,用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], xerr=0.5, yerr=0.5)

执行结果如下。

误差线样式定制:fmt、ecolor与elinewidth

对于误差线的视觉样式,可以通过以下参数进行个性化定制。

1. fmt参数

fmt参数的取值规则与plot方法中指定点的颜色、形状及线条风格时的缩写方式相同,具体示例如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, fmt='co--')

上述代码同时设置了三个属性,运行结果如下。

默认情况下,图表中仅包含线条元素。因此,当仅指定点的属性而未指定线条风格时,线条相关属性为空,导致线条不显示,示例如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, fmt='co')

上述代码未指定线条风格,运行结果如下。

再看一个仅指定颜色属性的例子,代码如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, fmt='c')

上述代码仅指定了颜色,运行结果如下。

2. ecolor参数

ecolor参数用于指定误差线的颜色,可将其与折线颜色区分开,用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, fmt='co--', ecolor='g')

运行结果如下。

3. elinewidth参数

elinewidth参数用于设置误差线的线条宽度,具体用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, fmt='ro-',ecolor='k',elinewidth=10)

运行结果如下。

lims系列参数:控制误差线方向与显示

4. lims系列参数

lims系列参数用于控制误差线的显示逻辑。针对X轴方向的误差线,涉及以下两个参数。

1. xuplims

2. xlolims

针对Y轴方向的误差线,涉及以下两个参数。

1. uplims

2. lolims

这四个参数默认值均为False。当取值为True时,对应方向的误差线将不显示,而在另一方向的误差线上会添加箭头标识,用法如下。

当uplims参数设为True时,向上的误差线隐藏,向下的误差线显示箭头,具体用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, uplims=True)

运行结果如下。

当lolims参数设为True时,向下的误差线隐藏,向上的误差线显示箭头,具体用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, lolims=True)

运行结果如下。

当uplims和lolims参数均设为True时,双向误差线均显示箭头,具体用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, uplims=True, lolims=True)

运行结果如下。

除了标量值外,lims系列参数的值也可以是列表,从而为每个数据点单独设置状态,用法如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, uplims=[False, True, False, True], lolims=[True, False, True, False])

运行结果如下。

True和False的不同组合可实现多样化的显示效果,示例如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=0.5, uplims=[True,True,False,False],lolims=[True,False,True,False])

运行结果如下。

与xerr和yerr类似,我们可以同时指定所有4个lims参数,示例如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=0.5, uplims=[True,True,False,False],lolims=[True,False,True,False],xerr=0.5, xuplims=[True,False,True,False],xlolims=[True,True,False,False])

运行结果如下。

errorevery参数:处理密集数据抽样

5. errorevery参数

errorevery参数用于控制误差线的抽样频率。默认情况下,每个数据点都会显示误差线。当数据点数量巨大且分布密集时,全量显示误差线会导致视觉混乱,难以提取有效信息,如下图所示。


plt.errorbar(x=range(100), y=range(100),yerr=50)

在数据过于密集的情况下,可以使用errorevery参数进行抽样展示,基本用法如下。


plt.errorbar(x=range(100), y=range(100),yerr=50,errorevery=6)

上述代码表示从第一个点开始,每隔6个点绘制一个误差线。经过抽样处理后,误差线的显示密度显著降低,运行结果如下。

除上述专属基本参数外,errorbar还支持众多通用参数,可对样式进行更精细的调整,示例如下。


plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1, marker='s', mfc='red', mec='green', ms=20, mew=4)

运行结果如下。

errorbar函数包含较多参数,熟练掌握常用参数即可满足大部分需求。

本文介绍了matplotlib中errorbar函数的基本用法及高级参数配置,更多相关内容可查阅本站往期文章或继续浏览后续内容,感谢支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。