2015-10-14 36 views
0

我试图绘制与errorbars一些数据在Python,但得到不断出现以下错误信息:python ValueError safezip:不同长度的数据和errordata?

(21,) (21,) (2, 21) (21,) 
    Traceback (most recent call last): 
    File "q_profil.py", line 104, in <module> 
ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-') #np.array([qstdev,qstdev] 
File "/usr/lib64/python2.7/site-packages/matplotlib/axes.py", line 5547, in errorbar 
in cbook.safezip(y,yerr[0])] 
File "/usr/lib64/python2.7/site-packages/matplotlib/cbook.py", line 1225, in safezip 
raise ValueError(_safezip_msg % (Nx, i + 1, len(arg))) 
ValueError: In safezip, len(args[0])=21 but len(args[1])=1 

代码:

qmean = np.mean(qn,axis=1)*1e03 
    qstdev = np.std(qn,axis=1)*1e03 
    xerr=[qstdev,qstdev] 
    print qmean.shape, qstdev.shape, np.shape(xerr),np.arange(-5,5.5,0.5).shape 

    fig = plt.figure() 
    ax = fig.add_subplot(111) 
    ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=[qstdev,qstdev]) 

我也尝试已经

ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=qstdev) 

ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=np.array([qstdev,qstdev])) 

总是有相同的错误。即使xerr =没有让我这个。你可以看到,我打印了qmean(我的数据),qstdev(错误数据数组的大小)和范围数组(从-5到5.5的范围)的形状,这是第一行第一个代码块。

对于

ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-',xerr=xerr) 

我LEN得到了错误(参数[1])= 2

任何人的任何意见,什么尝试?没有在网上找到任何有用的提示。通常,用户使用完全相同的代码解决了他们的问题。我想知道这个错误,因为我的数据的形状看起来是正确的。

+0

BTW:'ax.plot(qmean,np.arange( - 5,5.5,0.5))'确实很好地工作。所以我想这与错误有关? – Robert

回答

1

Got it! “errorbar” 不接受的情节格式作为非关键字参数

ax.errorbar(qmean,np.arange(-5,5.5,0.5),'.-') 

而是想要一个关键字参数

ax.errorbar(qmean,np.arange(-5,5.5,0.5),xerr=[qstdev,qstdev]fmt='.-') 
相关问题