帮写一段python实现以下功能,从test.xlsx文件读入三列数据,第一二列为变量,第三列为结果,实现函数拟合并画图
时间: 2024-05-02 16:18:37 浏览: 93
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
5星 · 资源好评率100%
以下是一个简单的Python代码实现,读取test.xlsx文件的前两列作为自变量x和因变量y,第三列作为结果z,利用Scipy库中的curve_fit函数对数据进行拟合,并用Matplotlib库绘制图形:
```python
import pandas as pd
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
# 读取Excel文件
df = pd.read_excel('test.xlsx', usecols=[0, 1, 2])
# 获取x, y, z列数据
x = df.iloc[:, 0].values
y = df.iloc[:, 1].values
z = df.iloc[:, 2].values
# 定义函数模型
def func(x, a, b, c):
return a * x**2 + b * x + c
# 进行曲线拟合
popt, pcov = curve_fit(func, x, y)
# 打印拟合参数
print('a =', popt[0])
print('b =', popt[1])
print('c =', popt[2])
# 绘制散点图和拟合曲线
plt.scatter(x, y, label='Data')
plt.plot(x, func(x, *popt), 'r-', label='Fit')
plt.legend()
plt.show()
```
在这个例子中,我们假设数据可以用二次函数模型进行拟合。因此,我们定义了一个func函数,其中a、b和c是拟合参数。我们使用curve_fit函数来拟合数据,并打印出拟合参数。最后,我们使用Matplotlib库绘制散点图和拟合曲线。
阅读全文