簡體   English   中英

如何在Python上繪制高斯函數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM