python绘制误差棒

matplotlib.pyplot.errorbar
errorbar函数的作用是在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时,不显示点和线,例如fmt='o-'表示圆点和直线。
  • ecolor:误差棒线条的颜色。类型为颜色值,默认值为None,即使用与误差棒连接的标记点的颜色。可选参数。
  • elinewidth:误差棒线条的宽度。类型为浮点数,默认值为None,即当前样式所使用的的线条宽度。 可选参数。
  • capsize:误差棒两端横杠的长度。类型为浮点数,单位为像素点,默认值为rcParams[“errorbar.capsize”],即0.0。可选参数。
  • capthick:误差棒两端横杠的宽度(磅数),markeredgewidth参数的别名。类型为浮点数,默认值为None。可选参数。
  • ms: 数据点的大小
  • mfc: 数据点的颜色
  • mec: 数据点边缘的颜色

1 导入相关模块以及数据

# 数据变量为data_modify
data_modify
# 删除野点,删除两边各0.5%的野点
a = np.percentile(data_modify['z0'].values, 0.5)
b = np.percentile(data_modify['z0'].values, 99.5)
data_modify_1 = data_modify[(data_modify['z0']>a) & (data_modify['z0']<b)]
# 按月进行汇总
data_month_avg = data_modify_1.resample('M').mean().dropna()
# 计算时间序列平均值
z0_month = np.zeros(12)
for i in range(1,13,1):
    j = i - 1
    z0_month[j] = data_month_avg[data_month_avg['月']==i]['z0'].mean()
# 改变x轴时间标签
yday_ticks = np.zeros(12,dtype=int)
yday_labels = np.zeros(12,dtype=object)
for imonth in range(12):
    dt = datetime(2019,imonth+1,1)
    yday_ticks[imonth] = dt.timetuple().tm_yday
    yday_labels[imonth] = dt.strftime('%b-%d')

2 以一个标准差作为误差

z0_month_sigma = np.zeros(12)
for i in range(1,13,1):
    j = i - 1
    z0_month_sigma[j] = data_month_avg[data_month_avg['月']==i]['z0'].std()

3 绘图

# ecolor:errorbar的颜色
# fmt:线+点
# color:折线的颜色
# elinewidth:误差棒的线条粗细size
# capthick:误差棒两条横线的磅数
# capsize:误差棒两条棒的长度
# capthick:
plt.figure(figsize=(6,3),dpi=300)
plt.rc('font',family='Times New Roman') 
plt.errorbar(x_time,z0_month,yerr=z0_month_sigma,fmt='o-',ecolor='r',color='b',elinewidth=1,capsize=8,capthick=1)
plt.xlabel('Month',fontsize=10)
plt.ylabel('z${_0}$',fontsize=10)
plt.xticks(fontsize=7)
plt.yticks(fontsize=7)
plt.xticks(np.arange(1,13,1),yday_labels,rotation=30)
#plt.savefig('动力学粗糙度月变化.png',dpi=500)

在这里插入图片描述

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值