如何在Python上绘制高斯函数?

如何在Python上绘制高斯函数?,python,plot,gaussian,Python,Plot,Gaussian,我有一个这样的数据文件 Frequencies -- 95.1444 208.5295 256.0966 IR Inten -- 4.5950 0.1425 2.4807 Frequencies -- 273.7203 424.4748 446.9433 IR Inten --

我有一个这样的数据文件

 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
每个频率与下面的红外强度相关,例如(频率=95.1444/红外强度=4.5950),(频率=2085295/红外强度=0.1425)。。。。等等

我必须在每一个频率上构造一条高斯曲线,其高度为最强峰值的相对强度。所有这些曲线的总和应该是红外光谱的模型

以下是一些操作提示:

高斯曲线是:

import math
y = a*math.exp(-(x-b)**2/(2*c*c))
在哪里

可以按如下方式绘制函数:

import pylab
pylab.plot(xs,ys)  

# xs is a list of x-values
# ys is a list of y-values


pylab.show()

您可以使用以下库:
导入matplotlib.pyplot作为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()
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()