当前有效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()