python绘制拟合累积正态分布概率曲线

本文详细介绍了如何使用Python和Matplotlib库绘制累积正态分布概率曲线,并通过Scipy库实现数据拟合。通过实例展示了如何计算并展示正态分布的均值和方差参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python绘制拟合累积正态分布概率曲线

累积正态分布概率图,即正态分布函数的积分形式。其公式为:
在这里插入图片描述
去掉积分符号就是正态分布的公式。

以下是实现的代码。

// A code block
import numpy as  np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import scipy.stats as st
import math

#定义纵坐标值
Y1 =  [0, 0, 0, 0, 0.1, 0.1, 0.1, 0.3, 0.5, 0.5, 0.7, 0.7, 0.8, 0.8, 0.9, 0.9, 0.9, 1, 1, 1, 1, 1, 1, 1]
#定义横坐标值
X1 = np.arange(1,len(Y1)+1)

# 拟合函数表达式定义
# miu是正态分布均值,theta是正态分布方差
def func(x, miu, theta):    
    return st.norm.cdf((x-miu)/theta)

# 绘制数据散点图
plt.plot(X1, Y1, 'b*', label='data')
# 进行数据拟合
popt, pcov = curve_fit(func, X1,Y1)
# 输出拟合的函数参数值
print(popt)
# 绘制拟合函数
plt.plot(X1, func(X1, *popt), 'r-',
         label='fit: miu=%5.3f, theta=%5.3f' % tuple(popt))

输出结果如下所示:
在这里插入图片描述

### 使用Python实现正态分布曲线拟合 为了使用Python中的`scipy`, `numpy` 和 `matplotlib`库来完成正态分布曲线拟合,可以遵循如下方法: #### 数据准备 首先需要有一组数据样本,这可以通过随机生成或者实际测量获得。这里假设已经拥有了这样的数据集。 ```python import numpy as np from scipy.stats import norm import matplotlib.pyplot as plt # 假设的数据点 data = np.random.normal(loc=0, scale=1, size=1000) # loc表示均值,scale表示标准差 ``` #### 参数估计 利用SciPy统计模块下的norm.fit()函数可以直接对给定的一维数组执行最大似然估计得到最佳匹配参数——即平均数(mu)和方差(sigma)[^1]。 ```python mu, std = norm.fit(data) print(f"Estimated Mean (μ): {mu}") print(f"Estimated Standard Deviation (σ): {std}") ``` #### 绘制直方图与理论密度函数对比 通过Matplotlib创建一个频率直方图,并在同一张图表上叠加一条代表理想化的正态概率密度函数线形图[^2]。 ```python plt.figure(figsize=(8,6)) count, bins, ignored = plt.hist(data, 30, density=True, alpha=.75, color='g') best_fit_line = norm.pdf(bins, mu, std) plt.plot(bins, best_fit_line, 'r-', lw=2) plt.title('Histogram and Best Fit Line of Normal Distribution', fontproperties="SimSun", fontsize=14) plt.xlabel('Value') plt.ylabel('Density') plt.show() ``` 上述代码片段展示了如何基于已有的观测值集合构建并可视化其对应的正态分布模型;其中字体设置部分体现了对于中文显示的支持。 此外,在某些情况下可能还需要计算额外统计数据比如中位数等,这些都可以借助NumPy或其他科学计算工具轻松获取[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值