溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Python中實(shí)現(xiàn)一個曲線擬合操作

發(fā)布時(shí)間:2021-04-07 17:20:46 來源:億速云 閱讀:286 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)怎么在Python中實(shí)現(xiàn)一個曲線擬合操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

曲線擬合的例子

import matplotlib.pyplot as plt
import math
import numpy as np
import random
import csv
plt.rcParams['font.sans-serif'] = ['SimHei']#設(shè)置顯示中文
fig = plt.figure()
ax = fig.add_subplot(111)#將畫布分割成1行1列,圖像畫在從左到右從上到下的第1塊
#階數(shù)為6階
order=6
#生成曲線上的各個點(diǎn)
dataMat = np.loadtxt(open("c:\\yandu.csv","rb"),delimiter=",",skiprows=0)
size=dataMat.shape
num=size[0]
trandata=np.transpose(dataMat)#矩陣轉(zhuǎn)置
xa=trandata[0]#得到天數(shù)數(shù)組(橫坐標(biāo))
ya=trandata[1]#實(shí)測鹽度值數(shù)組
#數(shù)據(jù)篩選,去除鹽度值為零的,提高擬合精度
i=0
x=[]
y=[]
for yy in ya:
  if yy>0:
    xx=xa[i]
    i+=1
    x.append(xx)
    y.append(yy)
#繪制原始數(shù)據(jù)
ax.plot(x,y,label=u'原始數(shù)據(jù)',color='m',linestyle='',marker='.')
#計(jì)算多項(xiàng)式
c=np.polyfit(x,y,order)#擬合多項(xiàng)式的系數(shù)存儲在數(shù)組c中
yy=np.polyval(c,x)#根據(jù)多項(xiàng)式求函數(shù)值
#進(jìn)行曲線繪制
x_new=np.linspace(0, 365, 2000)
f_liner=np.polyval(c,x_new)
#ax.plot(x,y,color='m',linestyle='',marker='.')
ax.plot(x_new,f_liner,label=u'擬合多項(xiàng)式曲線',color='g',linestyle='-',marker='')
# labels標(biāo)簽設(shè)置
ax.set_xlim(0, 366)
ax.set_xlabel(u'天')
ax.set_ylabel(u'鹽度')
ax.set_title(u'鹽度的日變化', bbox={'facecolor':'0.8', 'pad':5})
ax.legend()
plt.show()

看完上述內(nèi)容,你們對怎么在Python中實(shí)現(xiàn)一個曲線擬合操作有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI