python散点图拟合曲线-python中的多元(多项式)最佳拟合曲线?

?s=32Tyson

对this question的公认回答

提供了

您只需将x和y点的数组以及所需的拟合度(顺序)传递到multipolyfit。这将返回系数,然后可以使用numpy的polyval绘制。

注意:下面的代码已修改为进行多变量拟合,但绘图图像是早期非多变量答案的一部分。import numpy

import matplotlib.pyplot as plt

import multipolyfit as mpf

data = [[1,1],[4,3],[8,3],[11,4],[10,7],[15,11],[16,12]]

x, y = zip(*data)

plt.plot(x, y, 'kx')

stacked_x = numpy.array([x,x+1,x-1])

coeffs = mpf(stacked_x, y, deg)

x2 = numpy.arange(min(x)-1, max(x)+1, .01) #use more points for a smoother plot

y2 = numpy.polyval(coeffs, x2) #Evaluates the polynomial for each x2 value

plt.plot(x2, y2, label="deg=3")

KHwgP.png

注意:这是之前答案的一部分,如果没有多元数据,它仍然是相关的。使用coeffs = numpy.polyfit(x,y,3),而不是coeffs = mpf(...

对于非多元数据集,最简单的方法可能是使用numpy的^{}:numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)

Least squares polynomial fit.

Fit a polynomial p(x) = p[0] * x**deg + ... + p[deg] of degree deg to points (x, y). Returns a vector of coefficients p that minimises the squared error.

赞踩评论- 2020年3月30日 20:37

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值