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))
输出结果如下所示: