用numpy进行曲线拟合~

来源:互联网 发布:软件缺陷 编辑:程序博客网 时间:2024/05/04 02:29
# -*- coding: cp936 -*-import numpyimport pylabdef 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

0 0
原创粉丝点击