【发布时间】:2016-10-11 16:21:49
【问题描述】:
我在形状中有一个坐标列表及其各自的错误值:
# Graph from standard correlation, page 1
1.197 0.1838 -0.03504 0.07802 +-0.006464 +0.004201
1.290 0.2072 -0.04241 0.05380 +-0.005833 +0.008101
其中的列表示x,y,lefterror,righterror,buttomerror,toperror我将文件加载为error=np.genfromtxt("standard correlation.1",skip_header=1),最后我尝试将其绘制为
xerr=error[:,2:4]
yerr=error[:,4:]
x=error[:,0]
y=error[:,1]
plt.errorbar(x,y,xerr=xerr,yerr=yerr,fmt='')
当我尝试运行它时会大喊ValueError: setting an array element with a sequence.,我知道当您将诸如列表之类的对象传递给期望一个numpy数组对象的参数时会出现此错误,我不知道该怎么做修复这个问题,因为 np.genfromtxt 应该总是返回一个 ndarray。
感谢您的帮助。
编辑:我更改了文件以删除“+”字符,因为读取“+-”会在底部错误列中产生 NaN 值,但我仍然得到相同的错误。
【问题讨论】:
-
打印
error。还向我们展示它的shape和dtype。使用genfromtxt时,最好先看看它产生了什么,然后再尝试使用它。 -
使用
print np.shape(x),np.shape(y),np.shape(xerr),np.shape(yerr), type(datos)我也得到(30,) (30,) (30, 2) (30, 2) <type 'numpy.ndarray'>,错误就在我上面指定的 plt.errorbar() 上
标签: python arrays numpy matplotlib errorbar