# -*- coding: cp936 -*-
import numpy
import pylab
def plot_polynomail_fit(matrix,col,*deg):#
'''
这个函数一次只拟合一组数据。但是可以对这一组数据同时拟合多条曲线并显示。
matrix:存放的是需要拟合的数据,其中每一列代表一组待拟合数据。
col:代表你需要拟合第几列数据
*deg:是一个元组,长度不定,里面存放拟合的次数,可以对一组数据拟合出多条直线进行比较。
matrix是一个list.
'''
y=[ matrix[i][col] for i in xrange(len(matrix))]#提取出第i列数据
x=xrange(len(y)) #x坐标
COLOR=['c','m','y','k','r','p','o','g','b']
temp=[]
numOfLineToFit=len(deg)#需要拟合的次数列表
for index,item in enumerate (deg):
param=numpy.polyfit(x,y,item) #曲线的参数
equation=numpy.poly1d(param) #曲线方程
temp.extend(param[:]) #提取曲线参数
#print param
pylab.subplot(numOfLineToFit,1,index+1)
pylab.plot(x,equation(x),'%s--'% COLOR[index],label='(deg=%d)'% item)
pylab.plot(x,y,'b--',label='Original line')#'k',
#pylab.plot(x,y,'b--',label='Original line')#'k',
#pylab.legend()
pylab.show()
return temp
用numpy进行曲线拟合~
最新推荐文章于 2022-04-06 22:45:03 发布