小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python實現(xiàn)曲線擬合操作示例【基于numpy,scipy,matplotlib庫】

 眼鏡蛇圖書館zh 2019-05-20

本文實例講述了Python實現(xiàn)曲線擬合操作。分享給大家供大家參考,具體如下:

這兩天學習了用python來擬合曲線。

一、環(huán)境配置

本人比較比較懶,所以下載的全部是exe文件來安裝,安裝按照順利來安裝。自動會找到python的安裝路徑,一直點下一步就行。還有其他的兩種安裝方式:一種是解壓,一種是pip。我沒有嘗試,就不亂說八道了。

沒有ArcGIS 環(huán)境的,可以不看下面這段話了。

在配置環(huán)境時遇見一個小波折,就是原先電腦裝過ArcGIS10.2 ,所以其會默認安裝python2.7,而且python是32位的。且其目錄為C:\Python27\ArcGIS10.2,所以引用環(huán)境變量時,要注意。并且在其引用的工具包中本身包含numpy,matplotlib的包。還是很方便的。但是因為之前想用PyQT來做曲線擬合的界面,安裝QT時總是失敗,所以最后放棄使用這個。在安裝新的python時注意要把路徑寫到上面這個路徑前面,意思就是說在安裝上面的包的時候會找默認python路徑。我新安裝python路徑為C:\Python2,要不然就會找到ArcGIS那個python包路徑下了。

1. 安裝包

python2.7 (32位)https://www./downloads/
numpy-1.8.1-win32-superpack-python2.7
scipy-0.15.1-win32-superpack-python2.7
matplotlib-1.3.1.win32-py2.7

安裝過程中遇見的問題

提示

numpy是Python的一種開源的數(shù)值計算擴展,數(shù)學計算很方便。
scipy是一款方便、易于使用、專為科學和工程設(shè)計的Python工具包.它包括統(tǒng)計,優(yōu)化,整合,線性代數(shù)模塊,傅里葉變換,信號和圖像處理,常微分方程求解器等等.這次還沒用到,看介紹很強大,是numpy的升級版。

matplotlib是Python的一種開源的擴展可以繪制各種各種的圖表。

二、實例

曲線擬合的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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
#生成曲線上的各個點
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ù)組(橫坐標)
ya=trandata[1]#實測鹽度值數(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='.')
#計算多項式
c=np.polyfit(x,y,order)#擬合多項式的系數(shù)存儲在數(shù)組c中
yy=np.polyval(c,x)#根據(jù)多項式求函數(shù)值
#進行曲線繪制
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'擬合多項式曲線',color='g',linestyle='-',marker='')
# labels標簽設(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()

運行結(jié)果:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多