2017-04-22 43 views
0

代码:有一个与它似乎是5日线,特别是与np.polyfit问题,错误适合

i = text_i.get() 
r = text_r.get() 
i = i.split(", ") 
r = r.split(", ")   

fit = np.polyfit(i,r,1) 
fit_fn = np.poly1d(fit) 
plt.plot(i,r, 'yo', i, fit_fn(i), '--k') 
plt.ilim(0, 5) 
plt.rlim(0, 12) 

错误消息

fit = np.polyfit(i,r,1) 
    File "C:\Python27\lib\site-packages\numpy\lib\polynomial.py", line 546, in polyfit 
    x = NX.asarray(x) + 0.0 
TypeError: ufunc 'add' did not contain a loop with signature matching types 
dtype('S32') dtype('S32') dtype('S32') 

请找什么代码错了?

回答

1

np.polyfit(x,y,1)需要一个数值数据列表或数组作为其参数xy的输入。然而,你输入的是一些字符串。因此,您需要拆分该字符串,并将其每个元素转换为数字,然后将其传递到polyfit。 尝试:

i = np.array(list(map(float, i.split(", ")))) 
+0

我试过了,但现在收到以下错误-------- plt.ilim(0,5) AttributeError的: '模块' 对象有没有属性 'ILIM' –

+0

的错误很自我解释,不是吗? pyplot没有叫做'ilim'的函数。既然你发明了这个名字,我不知道你真的想用这些命令做什么。 – ImportanceOfBeingErnest

+0

好吧谢谢..它现在可以使用! :) –

相关问题