[英]How to plot a Gaussian function on Python?
我有一個這樣的數據文件
Frequencies -- 95.1444 208.5295 256.0966
IR Inten -- 4.5950 0.1425 2.4807
Frequencies -- 273.7203 424.4748 446.9433
IR Inten -- 0.6420 0.0001 0.9654
Frequencies -- 520.5846 561.6770 630.1851
IR Inten -- 8.8996 6.4944 0.4674
Frequencies -- 703.7315 767.1711 799.2923
IR Inten -- 23.7514 63.4507 15.9273
每個頻率與下面的IR強度相關,例如(頻率= 95.1444 / IR Inten = 4.5950),(頻率= 208,5295 / IR Inten = 0.1425)...等等。
我必須在每個頻率上構造一個高斯曲線,其高度為最強峰的相對強度。 所有這些曲線的總和應該是紅外光譜的模型。
以下是一些這樣做的提示:
高斯曲線為:
import math
y = a*math.exp(-(x-b)**2/(2*c*c))
哪里
a: height of the peak
b: position of the center of the peak
c: controls the width of the peak
您可以按以下方式繪制函數:
import pylab
pylab.plot(xs,ys)
# xs is a list of x-values
# ys is a list of y-values
pylab.show()
您可以使用以下庫: import matplotlib.pyplot as plt
您不必計算每個x和y值,可以通過這種方式計算均值和方差:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as mlab
import math
mu = 0
variance = 1
sigma = math.sqrt(variance)
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
plt.plot(x,mlab.normpdf(x, mu, sigma))
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.