在Python中使用numpy.polynomial.polynomialpolyline()函数绘制多项式折线图
numpy.polynomial.polynomial模块提供了一个名为polyfit的函数,可用于多项式拟合。此函数可用于生成多项式的系数,并根据给定的数据点估计曲线。然后,可以使用numpy中的polyval函数对估计的曲线进行评估以生成绘图数据点。接下来,可以使用matplotlib库绘制多项式折线图。
下面是一个使用numpy.polynomial.polynomial.polyfit()函数和numpy.polynomial.polynomial.polyval()函数绘制多项式折线图的示例:
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
x = np.linspace(-1, 1, 100)
y = 2 * x**3 - 3 * x**2 + 4 * x + 5
y_noise = np.random.normal(0, 1, 100)
y_data = y + y_noise
# 多项式拟合
degree = 3
coef = np.polyfit(x, y_data, degree)
poly_fit = np.polyval(coef, x)
# 绘制多项式拟合曲线和原始数据
plt.figure(figsize=(10, 6))
plt.plot(x, poly_fit, label='Polynomial Fit')
plt.scatter(x, y_data, label='Original Data')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.title('Polynomial Fitting')
plt.show()
在这个示例中,首先使用np.polyfit函数(二次多项式)拟合给定的数据点,然后使用np.polyval函数和拟合系数计算拟合曲线的y值。最后,使用plt.plot函数绘制多项式拟合曲线,并使用plt.scatter函数绘制原始数据点。
随机数种子(np.random.seed(0))的使用可确保示例在每次运行时生成相同的随机数据。这将有助于演示拟合效果。
参考资料:
- numpy.polyfit文档:https://numpy.org/doc/stable/reference/generated/numpy.polyfit.html
- numpy.polyval文档:https://numpy.org/doc/stable/reference/generated/numpy.polyval.html
- matplotlib.pyplot.plot文档:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
- matplotlib.pyplot.scatter文档:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html
