python中的标准正态分布
我希望在python中创建一条标准正态分布(平均值=0,标准偏差=1)曲线,然后在z分数的左侧、右侧和中间添加阴影区域。我还想打印z分数和阴影区域的相关概率 例如,我感兴趣的阴影区域有: 概率(z<-0.75) 概率(z>0.75) 概率(-0.75python中的标准正态分布,python,matplotlib,normal-distribution,Python,Matplotlib,Normal Distribution,我希望在python中创建一条标准正态分布(平均值=0,标准偏差=1)曲线,然后在z分数的左侧、右侧和中间添加阴影区域。我还想打印z分数和阴影区域的相关概率 例如,我感兴趣的阴影区域有: 概率(z0.75) 概率(-0.75
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
range = np.arange(-3,3,0.001)
plt.plot(range, norm.pdf(range, 0, 1))
plt.show()
您必须使用在两条曲线之间绘制区域的函数,在这种情况下,在y=0
和y=normal distribution
之间,为便于创建任务,请使用以下函数:
def draw_z_score(x, cond, mu, sigma, title):
y = norm.pdf(x, mu, sigma)
z = x[cond]
plt.plot(x, y)
plt.fill_between(z, 0, norm.pdf(z, mu, sigma))
plt.title(title)
plt.show()
例如:
x = np.arange(-3,3,0.001)
z0 = -0.75
draw_z_score(x, x<z0, 0, 1, 'z<-0.75')
输出:
x = np.arange(-3,3,0.001)
z0 = 0.75
draw_z_score(x, (-z0 < x) & (x < z0), 0, 1, '-0.75<z<0.75')
x = np.arange(-3,3,0.001)
z0 = 0.75
draw_z_score(x, x > z0, 0, 1, ' z> 0.75')