输入散点拟合值时的错误



代码:第五行有一个问题,尤其是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:Python27libsite-packagesnumpylibpolynomial.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')

请找到代码有什么问题?

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

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

相关内容

  • 没有找到相关文章

最新更新