You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python正态分布图填充95%置信区间并标注上下限的实现咨询

实现代码

你可以直接在原有代码基础上补充以下逻辑,完整可运行代码如下:

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

# 原有绘图逻辑
x_axis = np.arange(-10, 10, 0.001)
mu = np.mean(x_axis)
sigma = np.std(x_axis)
pdf = stats.norm.pdf(x_axis, loc=mu, scale=sigma)
plt.plot(x_axis, pdf, label='正态分布概率密度')

# 新增:计算95%置信区间上下限
ci_low = stats.norm.ppf(0.025, loc=mu, scale=sigma)
ci_high = stats.norm.ppf(0.975, loc=mu, scale=sigma)

# 新增:填充置信区间区域
plt.fill_between(
    x_axis, pdf, 
    where=(x_axis >= ci_low) & (x_axis <= ci_high),
    color='skyblue', alpha=0.4,
    label='95% 置信区间'
)

# 新增:标记置信区间上下限
# 加垂直线标记边界
plt.axvline(ci_low, color='gray', linestyle='--', linewidth=1)
plt.axvline(ci_high, color='gray', linestyle='--', linewidth=1)
# 在x轴上添加上下限数值刻度
plt.xticks(list(plt.xticks()[0]) + [round(ci_low, 2), round(ci_high, 2)])

# 可选:优化显示效果
plt.legend()
plt.xlabel('x')
plt.ylabel('概率密度')
plt.show()

关键逻辑说明

  • stats.norm.ppf 是正态分布的分位点函数,输入0.025和0.975的累积概率,就能直接得到双侧95%置信区间的上下边界
  • fill_between 的where参数用来限定只填充区间范围内的区域,alpha参数调整填充透明度,避免遮挡原本的密度曲线
  • 直接把置信区间上下限的数值加入x轴的刻度列表,就能在x轴上直观显示边界数值,也可以根据需要调整颜色、精度等样式参数

内容的提问来源于stack exchange,提问作者inic72

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:36:01