Python应用|绘制任意正态分布曲线

Python:绘制正态分布曲线

  • 正态分布介绍
  • 正态分布曲线

正态分布介绍

正态分布:Normal distribution
假设随机变量X服从一个数学期望为μ,方差为σ ^2为的正态分布,则可以记为:
在这里插入图片描述
概率密度函数
在这里插入图片描述
其中:μ决定了位置, σ ^2决定了分布的幅度,当μ=0,σ =1时的正态分布是标准正态分布。

正态分布转化为标准正态分布
在这里插入图片描述

正态分布曲线

使用Python绘制正态分布曲线,需要借助matplotlib绘图工具。代码如下:

#Python绘制正态分布曲线
import numpy as np
import matplotlib.pyplot as plt

#正态分布的概率密度函数
def normpdf(x,mu,sigma):       
    pdf=np.exp(-(x-mu)**2/(2*sigma**2))/(sigma * np.sqrt(2 * np.pi))
    return pdf

mu,sigma=eval(input()) #mu:期望;sigma:标准差  
x= np.arange(mu-3*sigma,mu+3*sigma,0.01) #生成数据,步长越小,曲线越平滑
y=normpdf(x,mu,sigma)

#概率分布曲线
plt.plot(x,y,'g--',linewidth=2)
plt.title('Normal Distribution: mu = {:.2f}, sigma={:.2f}'.format(mu,sigma))
plt.vlines(mu, 0, normpdf(mu,mu,sigma), colors = "c", linestyles = "dotted")
plt.vlines(mu+sigma, 0, normpdf(mu+sigma,mu,sigma), colors = "y", linestyles = "dotted")
plt.vlines(mu-sigma, 0, normpdf(mu-sigma,mu,sigma), colors = "y", linestyles = "dotted")
plt.xticks ([mu-sigma,mu,mu+sigma],['μ-σ','μ','μ+σ'])

#输出
plt.grid()
plt.show()

效果图:
Python应用|绘制任意正态分布曲线_第1张图片

你可能感兴趣的:(Python,python)