如何查看Polyfit拟合曲线方程、参数并显示数据点以预测2022数据
拟合曲线处理与数据预测方案
核心操作步骤
- 提取Polyfit方程与参数:若使用Python的
numpy.polyfit()函数,一阶线性拟合方程为y = k*x + b,其中:- 斜率
k:拟合返回的一阶系数 - 截距
b:拟合返回的常数项
若是高阶拟合,方程形式为y = a_n*x^n + ... + a_1*x + a_0,各阶系数可直接从numpy.polyfit()的返回结果中提取。
- 斜率
- 显示被遮挡的数据点:在绘图代码中,将数据点绘制语句(如
plt.scatter(x_data, y_data))放在拟合曲线绘制语句(如plt.plot(x_fit, y_fit))之前,或给数据点设置更大的标记尺寸(s参数)、高对比度颜色(如color='red'),避免被曲线遮挡。 - 2022年数据预测:将
x=2022代入拟合方程计算即可。比如一阶拟合时,直接计算y_pred = k*2022 + b。
示例代码片段
import numpy as np import matplotlib.pyplot as plt # 示例原始数据 x_data = [2018, 2019, 2020, 2021] y_data = [100, 120, 150, 180] # 一阶线性拟合 coefficients = np.polyfit(x_data, y_data, 1) k = coefficients[0] # 斜率 b = coefficients[1] # 截距 poly_eq = np.poly1d(coefficients) # 预测2022年数据 y_2022 = poly_eq(2022) # 绘图:先画数据点,再画拟合曲线 plt.scatter(x_data, y_data, color='red', s=50, label='原始数据点') plt.plot(x_data, poly_eq(x_data), label=f'拟合曲线: y={k:.2f}x + {b:.2f}') plt.legend() plt.show() # 输出关键结果 print(f"拟合方程: y = {k:.2f}x + {b:.2f}") print(f"斜率: {k:.2f}") print(f"截距: {b:.2f}") print(f"2022年预测值: {y_2022:.2f}")
注:若为高阶拟合(如二阶),只需将
np.polyfit()的第三个参数改为对应阶数,方程形式和预测逻辑同理。
内容的提问来源于stack exchange,提问作者Hakari Kinji
相关产品推荐
相关产品推荐

