python绘制拟合优度曲线代码
时间: 2024-10-12 19:12:49 浏览: 31
Python中可以使用matplotlib库以及scipy库中的curve_fit函数来绘制拟合优度曲线。下面是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义一个模拟的数据生成函数
def func(x, a, b):
return a * x + b
# 模拟数据
x_data = np.linspace(0, 10, 100) # 数据点范围从0到10,共100个点
y_data = func(x_data, 2, 5) + np.random.normal(0, 1, len(x_data)) # 添加随机噪声
# 使用curve_fit进行非线性拟合
params, _ = curve_fit(func, x_data, y_data)
# 计算并获取拟合结果的拟合优度R^2值
r_squared = params[0]**2 / (np.var(y_data) - params[0]**2)
# 绘制原始数据和拟合曲线
plt.figure()
plt.plot(x_data, y_data, 'o', label='Data')
plt.plot(x_data, func(x_data, *params), '-', label='Fit: $a=%5.2f, b=%5.2f$' % tuple(params))
plt.title('Fitting with R-squared = %.2f' % r_squared)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
# 显示拟合优度曲线,通常不是直接绘制,而是通过调整R^2值显示效果
# 你可以创建一个新的图来展示R^2值的变化,但这超出了本示例的范围
plt.show()
```
在这个例子中,`curve_fit`函数用于找到最佳拟合参数,`r_squared`计算了拟合模型的决定系数,表示数据有多大部分可以由模型解释。
阅读全文