当前有效matplotlib版本为:3.4.1。
概述
error()函数的作用是在plot函数的基础上,在数据点位置绘制误差棒。
函数的签名为matplotlib.pyplot.errorbar(x, y, yerr=None, xerr=None, fmt='', ecolor=None, elinewidth=None, capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, errorevery=1, capthick=None, *, data=None, **kwargs)。
函数的参数为:
x,y:数据的位置。类型为浮点数或类数组结构。必备参数。xerr, yerr:误差棒的误差范围,所有值必须为正值。类型为浮点数、类数组结构(N,)或(2, N)。可选参数。- 浮点数:所有点具有同一个对称的正负误差。
- 一维数组:每个点具有一个对应元素的对称的正负误差。
(2, N)数组:每个点具有一个对应元素的非对称的正负误差。其中第一行包含负误差,第二行包含正误差。None:不绘制误差棒
fmt:数据点/线的格式字符串,同plot函数。类型为字符串,默认值为''。可选参数。当取值为none时,不显示点和线。ecolor:误差棒线条的颜色。类型为颜色值,默认值为None,即使用与误差棒连接的标记点的颜色。可选参数。elinewidth:误差棒线条的宽度。类型为浮点数,默认值为None,即当前样式所使用的的线条宽度。 可选参数。capsize:误差棒两端横杠的长度。类型为浮点数,单位为像素点,默认值为rcParams["errorbar.capsize"],即0.0。可选参数。capthick:误差棒两端横杠的宽度,markeredgewidth参数的别名。类型为浮点数,默认值为None。可选参数。barsabove:误差棒是否位于数据符号之上。类型为布尔值,默认值False。 可选参数。lolims, uplims, xlolims, xuplims:控制显示误差棒的上限部分或下限部分。类型为布尔值,默认值False。 可选参数。
其中lolims, uplims用于控制y轴误差棒,xlolims, xuplims用于控制x轴误差棒。例如lolims用于控制y轴下限,当值为True时,当前数据点y值即为下限值,这意味着只显示大于该值的误差棒!即误差棒的上半部分。以此类推。errorevery:根据数据的子集绘制误差棒,相当于抽样,每errorevery个数据绘制一个误差棒。类型为整数或(整数,整数)二元组,默认值为1。**kwargs:matplotlib.lines.Line2D对象属性。
返回值为matplotlib.container.ErrorbarContainer对象。
plotline:Line2D实例caplines:误差棒两端横杠的Line2D对象二元组barlinecols:水平/垂直方向误差范围LineCollection对象元组
案例:演示yerr参数取值(对称误差、非对称误差)

import numpy as np
import matplotlib.pyplot as plt
# 构造数据
x = np.arange(10)
y = 2.5 * np.sin(x / 20 * np.pi)
# 构造一维数组
yerr1 = np.linspace(0.05, 0.2, 10)
# 构造(2,N)结构的数组
yerr2 = np.random.rand(2,10)
# 浮点值,所有点统一对称误差
plt.errorbar(x, y, yerr=0.5)
# 一维数组,每个点分别根据数组对应元素设置对称误差
plt.errorbar(x, y - 1, yerr=yerr1)
# (2,N)结构数组,每个点分别根据数组设置误差
# 第一行对应每个点的负误差,第二行对应每个点的正误差
plt.errorbar(x, y - 2, yerr=yerr2)
plt.show()
案例:演示外观参数和抽样参数

import numpy as np
import matplotlib.pyplot as plt
# 构造数据
x = np.arange(10)
y = 2.5 * np.sin(x / 20 * np.pi)
# 默认样式
plt.errorbar(x, y, yerr=0.2)
# 修改外观属性
plt.errorbar(x, y - 1, yerr=0.2, fmt='-', ecolor='r',
elinewidth=2, capsize=2, capthick=1, barsabove=True)
# 抽样数据,每2个数据绘制一个误差棒
plt.errorbar(x, y - 2, yerr=0.2, errorevery=2)
plt.show()
案例:演示uplims、lolims参数

import numpy as np
import matplotlib.pyplot as plt
# 构造数据
x = np.arange(10)
y = 2.5 * np.sin(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
# 默认样式
plt.errorbar(x, y + 3, yerr=yerr, label='default')
# 只显示负误差部分
plt.errorbar(x, y + 2, yerr=yerr, uplims=True, label='uplims=True')
# 显示正负误差两部分
plt.errorbar(x, y + 1, yerr=yerr, uplims=True, lolims=True,
label='uplims=True, lolims=True')
# 混合应用
upperlimits = [True] * 10
lowerlimits = [False, True] * 5
plt.errorbar(x, y, yerr=yerr, uplims=upperlimits, lolims=lowerlimits,
label='subsets of uplims and lolims')
plt.legend()
plt.show()
本文详细介绍了matplotlib库中errorbar函数的用法,包括参数含义、错误棒的绘制方式以及如何自定义外观。通过案例展示了对称和非对称误差棒的设置,以及如何控制误差棒的显示部分。同时,还演示了如何调整误差棒的外观属性,如线条颜色、宽度和端点帽的大小,并通过抽样参数 errorevery 控制误差棒的绘制频率。最后,通过示例展示了uplims和lolims参数如何控制误差棒的上限和下限显示。
832

被折叠的 条评论
为什么被折叠?



