python - python中的标准正态分布

标签 python matplotlib normal-distribution

我希望在 python 中创建标准正态分布(均值=0,标准偏差=1)曲线,然后在 z 分数的左侧、右侧和中间遮蔽区域。我还想打印 z 分数和阴影区域的相关概率。

例如,我感兴趣的阴影区域是:

概率(z < -0.75)

Probability(z < -0.75)

概率(z > 0.75)

Probability(z > 0.75)

概率(-0.75 < z < 0.75)

Probability(-0.75 < z < 0.75)

我使用以下几行来创建标准正态分布曲线。如何为关联的 z 分数添加阴影区域并打印 z 分数和概率?

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()

最佳答案

您必须使用 fill_between绘制 2 条曲线之间区域的函数,在本例中为 y = 0y = 正态分布 之间,为了便于完成任务,已创建以下函数:

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')

输出:

enter image description here


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')

输出:

enter image description here


x = np.arange(-3,3,0.001)
z0 = 0.75
draw_z_score(x, x > z0, 0, 1, ' z> 0.75')

输出:

enter image description here

关于python - python中的标准正态分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46375553/

相关文章:

python - 将文本文件解析为 pandas 数据框

python - 如何在 OpenCV 中绘制图像的 3D 直方图

machine-learning - 对于神经网络来说,拥有正态分布的数据重要吗?

python - CSRF验证失败。请求被中止。 Django 1.7

Python哨兵控制循环

python - 从 Azure ML 中的 pyodbc 连接到 Azure SQL 数据库的驱动程序的名称是什么?

python - 运行示例时出错

python - 在python中生成对数刻度

python - scipy.stats.norm.pdf 的替代品?

c++ - 包装正态分布 C++