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

好吧謝謝..它現在可以使用! :) –

相關問題