python拟合高斯曲线
时间: 2024-08-11 18:01:47 浏览: 23
在Python中,我们可以使用`scipy.stats.norm`函数或者`matplotlib.pyplot`库中的`curve_fit`函数来拟合数据到高斯分布,也称为正态分布。高斯分布是一种连续概率分布,其数学公式为`f(x; μ, σ) = (1 / (σ * sqrt(2π))) * exp(-(x - μ)^2 / (2σ^2))`,其中μ是均值,σ是标准差。
以下是一个简单的例子,假设我们有一个随机生成的数据集,我们想对其进行高斯曲线拟合:
```python
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
# 假设这是我们的数据
data = np.random.normal(loc=0, scale=1, size=100)
# 定义高斯分布的拟合函数
def normal_pdf(x, mean, std_dev):
return stats.norm.pdf(x, loc=mean, scale=std_dev)
# 使用curve_fit进行拟合
params, _ = stats.curve_fit(normal_pdf, data, data, p0=[np.mean(data), np.std(data)])
# 计算得到的均值和标准差
mu, sigma = params
# 绘制原始数据和拟合的高斯曲线
plt.hist(data, bins='auto', density=True, alpha=0.5, label="Data")
x = np.linspace(min(data), max(data), 100)
plt.plot(x, normal_pdf(x, mu, sigma), 'r-', linewidth=2, label=f"Fit μ={mu:.2f}, σ={sigma:.2f}")
plt.legend()
plt.show()
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)