在matplotlib中,errorbar方法用于绘制带误差线的折线图,基本用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 ) |
输出结果如下
yerr参数用于指定y轴水平的误差,同时该方法也支持x轴水平的误差,对应参数xerr。指定误差值有多种方式,上述代码展示的是指定一个统一标量的用法,此时,所以的点误差值都一样。
除此之外,还可以指定为一个和点的个数相同的数组,为每个点单独设置误差值,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = [ 1 , 2 , 3 , 4 ]) |
输出结果如下
另外,考虑到每个点的上下误差会不同,也支持用行数为2的多维数组来单独指定每个点上下的误差值,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = [[ 1 , 2 , 3 , 4 ],[ 1 , 2 , 3 , 4 ]]) |
输出结果如下
xerr参数的用法和yerr相同,这里不再赘述,示例如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], xerr = 1 ) |
输出结果如下
errorbar方法支持同时指定xerr和yerr参数,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], xerr = 0.5 , yerr = 0.5 ) |
输出结果如下
对于误差图的样式,可以通过以下几个参数来个性化指定
1. fmt
fmt参数的值和plot方法中指定点的颜色,形状,线条风格的缩写方式相同,示例如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , fmt = 'co--' ) |
上述代码同时指定了3个属性,输出结果如下
默认的图中只有线条这一元素,所以当我们指定了点的属性时,如果不指定线条的风格等属性,则对应的属性为空,线条元素不会显示,示例如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , fmt = 'co' ) |
上述代码没有指定线条的风格,输出结果如下
再来看一个例子,示例如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , fmt = 'c' ) |
上述代码只指定了颜色属性,输出结果如下
2. ecolor
ecolor参数指定error bar的颜色,可以和折线的颜色加以区分,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , fmt = 'co--' , ecolor = 'g' ) |
输出结果如下
3. elinewidth
elinewidth参数指定error bar的线条宽度,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , fmt = 'ro-' ,ecolor = 'k' ,elinewidth = 10 ) |
输出结果如下
4. lims系列参数
lims系列参数用于控制误差线的显示,对于x轴水平的误差线而言,有以下两个参数
1. xuplims
2. xlolims
对于y轴水平的误差线而言,有以下两个参数
1. uplims
2. lolims
这四个参数默认的取值为False, 当取值为True时,对应方向的误差线不显示,同时在另外一个方向上的误差线上,会用箭头加以标识。
当uplims参数的值为True时,向上的误差线不显示,向下的误差线加箭头,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , uplims = True ) |
输出结果如下
当lolims参数的值为True时,向下的误差线不显示,向上的误差线加箭头,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , lolims = True ) |
输出结果如下
当uplims和lolims参数的值都为True时,双向的误差线都加箭头,用法如下
1
|
plt.errorbar(x = [ 1 , 2 , 3 , 4 ], y = [ 1 , 2 , 3 , 4 ], yerr = 1 , uplims = True , lolims = True ) |
输出结果如下
除了指定为标量外,lims系列参数的值也可以是一个列表,为每个点单独设值,用法如下
1
|
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的组合可以实现不同的效果,示例如下
1
|
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参数,示例如下
1
|
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 ]) |
输出结果如下
5. errorevery
errorevery参数用于指定误差线的抽样频率,默认情况下,每个点的误差线都会显示,当点很多且密集分布时, 每个点都显示误差线的话,就很难看出有效的信息,比如下图
1
|
plt.errorbar(x = range ( 100 ), y = range ( 100 ),yerr = 50 ) |
过于密集的情况下,可以使用errorevery参数进行抽样,基本用法如下
1
|
plt.errorbar(x = range ( 100 ), y = range ( 100 ),yerr = 50 ,errorevery = 6 ) |
上述代码表示从第一个点开始,每6个点画一个误差线,这样抽样之后,误差线就不那么密集了,输出结果如下
除了以上几个专属的基本参数外,还有很多的通用参数,可以对errorbar的样式进行精细调整,示例如下
1
|
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的使用的文章就介绍到这了,更多相关matplotlib errorbar内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_43569478/article/details/107625607