11.绘制统计图形——误差棒图

11.绘制统计图形——误差棒图文章目录 1 应用场景 定量数据的误差范围 2 带误差棒的柱状图 3 带误差棒的条形图 4 带误差棒的多数据并列柱状图 5 带误差棒的堆积柱状图在很多科学实验中都存在测量误差或是试验误差 这是无法控制的

大家好,欢迎来到IT知识分享网。

在很多科学实验中都存在测量误差或是试验误差,这是无法控制的客观因素。这样,在可视化结果的时候,最好可以给实验结果增加观测结果的误差以表示客观存在的测量偏差。误差棒图就是可以用在这一场景中的很理想的统计图形。

1.应用场景——定量数据的误差范围

通过抽样获得样本,对总体参数进行估计会由于样本的随机性导致参数估计值出现波动,因此需要用误差置信区间来表示对总体参数估计的可靠范围。误差棒就可以很好地实现充当总体参数估计的置信区间的角色。误差棒的计算方法可以有很多种:单一数值、置信区间、标准差和标准误差等。误差棒的可视化展示效果也有很多种样式:水平误差棒、垂直误差棒、对称误差棒、非对称误差棒等。

import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np x = np.linspace(0.1,0.6,10) y = np.exp(x) error = 0.05+0.15*x lower_error = error upper_error = 0.3*error error_limit = [lower_error,upper_error] plt.errorbar(x,y,yerr=error_limit,fmt=":o", ecolor="y",elinewidth=4, ms=5,mfc="c",mec="r", capthick=1,capsize=2) plt.xlim(0,0.7) plt.show() 

在这里插入图片描述

errorbar()参数含义如下: x,y:数据点的位置 yeer:单一数值的非对称形式误差范围 fmt:数据点的标记样式和数据点标记的连接线样式 ecolor:误差棒的线条颜色 elinewidth:误差棒的线条粗细 ms:数据点的大小 mfc:数据点的标记颜色 mec:数据点的标记边缘颜色 capthick:误差棒边界横杆的厚度 capsize:误差棒边界横杆的大小 

2.带误差棒的柱状图

import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams["font.sans-serif"]=["FangSong"] mpl.rcParams["axes.unicode_minus"]=False # some simple data x = np.arange(5) y = [100,68,79,91,82] std_err = [7,2,6,10,5] error_attri = dict(elinewidth=2,ecolor="black",capsize=3) # create bar with errorbar plt.bar(x,y, color="c", width=0.6, align="center", yerr=std_err, error_kw=error_attri, tick_label=["园区1","园区2","园区3","园区4","园区5"]) # set x,y_axis label plt.xlabel("芒果种植园区") plt.ylabel("收割量") # set title of axes plt.title("不同芒果种植区的单词收割量") # set yaxis grid plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2) plt.show() 

在这里插入图片描述

3.带误差棒的条形图

import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams["font.sans-serif"]=["FangSong"] mpl.rcParams["axes.unicode_minus"]=False # some simple data x = np.arange(5) y = [1200,2400,1800,2200,1600] std_err = [150,100,180,130,80] bar_width = 0.6 colors = ["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"] # create bar with errorbar plt.barh(x,y, bar_width, color = colors, align="center", xerr=std_err, tick_label=["家庭","小说","心理","科技","儿童"]) # set x,y_axis label plt.xlabel("订购数量") plt.ylabel("图书种类") # set title plt.title("大型图书展销会的不同图书种类的采购情况") # set yaxis grid plt.grid(True,axis="x",ls=":",color="gray",alpha=0.2) plt.xlim(0,2600) plt.show() 

在这里插入图片描述

4.带误差棒的多数据并列柱状图

import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams["font.sans-serif"]=["FangSong"] mpl.rcParams["axes.unicode_minus"]=False # some simple data x = np.arange(5) y1 = [100,68,79,91,82] y2 = [120,75,70,78,85] std_err1 = [7,2,6,10,5] std_err2 = [5,1,4,8,9] error_attri = dict(elinewidth=2,ecolor="black",capsize=3) bar_width = 0.4 tick_label = ["园区1","园区2","园区3","园区4","园区5"] # create bar with errorbar plt.bar(x,y1, bar_width, color="#87CEEB", align="center", yerr=std_err1, error_kw=error_attri, label="2010") plt.bar(x+bar_width,y2, bar_width, color="#CD5C5C", align="center", yerr=std_err2, error_kw=error_attri, label="2013") # set x,y_axis label plt.xlabel("芒果种植区") plt.ylabel("收割量") # set xaxis tick_label plt.xticks(x+bar_width/2,tick_label) # set title of axes plt.title("不同年份的芒果种植区的单次收割量") # set yaxis grid plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2) plt.legend() plt.show() 

在这里插入图片描述

5.带误差棒的堆积柱状图

import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np mpl.rcParams["font.sans-serif"]=["FangSong"] mpl.rcParams["axes.unicode_minus"]=False # some simple data x = np.arange(5) y1 = [1200,2400,1800,2200,1600] y2 = [1050,2100,1300,1600,1340] std_err1 = [150,100,180,130,80] std_err2 = [120,110,170,150,120] bar_width = 0.6 tick_label = ["家庭","小说","心理","科技","儿童"] error_attri = dict(elinewidth=2,ecolor="black",capsize=0) # create bar plt.bar(x,y1, bar_width, color="#6495ED", align="center", yerr=std_err1, error_kw=error_attri, label="地区1") plt.bar(x,y2, bar_width, bottom=y1, color="#EFA500", align="center", yerr=std_err2, error_kw=error_attri, label="地区2") # set x,y_axis label plt.xlabel("图书种类") plt.ylabel("订购数量") # set title plt.title("不同地区大型图书馆展销会的图书采购情况") # set yaxis grid plt.grid(True,axis="y",ls=":",color="gray",alpha=0.2) plt.xticks(x,tick_label) plt.legend() plt.show() 

在这里插入图片描述


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139068.html

(0)
上一篇 2025-06-08 19:15
下一篇 2025-06-08 19:20

相关推荐

发表回复

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

关注微信