问题描述
我正在尝试对实验数据进行调整。当我运行代码时,通常会出现错误
回溯(最近通话最近): 在第21行的文件“ /home/h/oscillator1.py” 斜率,截距,r_value = scipy.stats.linregress(数据) ValueError:太多值无法解包(预期3)
这是我的代码:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import scipy.stats
data = pd.read_csv("/home/h/Documents/oscillator1.csv",decimal='.')
plt.plot(
data['t (s)'],data['x (cm)'],marker='+',linestyle="None",label="Data"
)
plt.xlabel("t [s]",fontsize=13)
plt.ylabel("x [cm]",fontsize=13)
plt.xticks(np.arange(0,1300,step=150),size = 13)
plt.yticks(np.arange(-11,2,step=1),size = 13)
plt.title("x vs t from torsion balance measurements",fontsize=16)
slope,intercept,r_value = scipy.stats.linregress(data)
print("slope = {},intercept = {} and r-value = {}".format(slope,r_value**2))
plt.plot(data['t (s)'],data['t (s)']*slope+intercept,label="Linear regression"
)
plt.legend(fontsize=12) plt.show()
感谢任何帮助。
解决方法
请参阅documentation page。函数scipy.stats.linregress
返回5个值:
- 坡度
- 拦截
- 右值
- pvalue
- stderr
您将需要修改对scipy.stats.linregress
的呼叫,如下所示:
slope,intercept,r_value,p_value,stderr = scipy.stats.linregress(data)