我在形状中列出了坐标及其各自的误差值:
# 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='')
当我试着运行它时,我知道当你把一个对象(比如一个列表)传递给一个需要numpy数组对象的参数时会出现这个错误,我不知道该如何解决这个问题,就像np.genfromtxt文件应该总是返回一个数组。你知道吗
谢谢你的帮助。你知道吗
编辑:我更改了文件以删除“+”字符,因为读取“+-”会在底部错误列中产生NaN值,但仍然会得到相同的错误。你知道吗
数组numpy期望单个错误条的形状是
(2, N)
。因此,您需要转置数组error[:,2:4].T
而且,matplotlib.errorbar
了解那些与数据相关的值。如果x
是值,而(xmin, xmax)
是相应的错误,则errorbar从x-xmin
到x+xmax
。因此,errorbar数组中不应该有负值。你知道吗关于值错误,它可能是由
+-
问题引起的。你知道吗多亏了hpaulj,我注意到错误条的形状是(30,2),但是
plt.errobar()
期望错误数组的形状是(2,n),因为python通常在类似的操作中转置矩阵并自动避免这个问题,我想它也会这样做,但我决定按以下方式更改行:进入
这使得脚本运行正常,虽然我仍然不明白为什么以前的代码给了我这样一个错误,如果有人能帮我弄清楚,我将不胜感激。你知道吗
相关问题 更多 >
编程相关推荐