6

我正在尝试用python的平均值和标准差数组绘制误差条,如下所示:

p11 = np.genfromtxt(filn1,delimiter="",usecols=0,dtype=None)
p12 = np.genfromtxt(filn3,delimiter="",usecols=0,dtype=None) 
s11 = np.genfromtxt(filn2,delimiter="",usecols=0,dtype=None)
s12 = np.genfromtxt(filn4,delimiter="",usecols=0,dtype=None)
F1= np.genfromtxt(filn6,delimiter="",usecols=0,dtype=None)
F2= np.genfromtxt(filn7,delimiter="",usecols=0,dtype=None)
yerr1 =0.5*s11
yerr2 = 0.5*s12
plt.errorbar(F1,p11,'r',yerr=yerr1,lw=3,label='Summer')
plt.errorbar(F2,p12,'b',yerr=yerr2,lw=3,label='Winter')

这里 p11 和 p12 是平均值数组,s11 和 s12 是对应的标准差数组。这段代码运行良好,但现在结果是:

TypeError: errorbar() got multiple values for keyword argument 'yerr'

任何想法或提示将不胜感激。艾萨克

4

1 回答 1

6

我认为 plt.errorbar 的第三个参数必须是 yerr,但在您的情况下,您使用的是格式。尝试使用“fmt”指定格式。

plt.errorbar(F1,p11,fmt='r',yerr=yerr1,lw=3,label='Summer')
plt.errorbar(F2,p12,fmt='b',yerr=yerr2,lw=3,label='Winter')

我的建议是始终使用参数名称,以便于阅读代码和调试。

于 2017-10-17T18:52:19.840 回答