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

如何将标准正态分布曲线叠加到数据直方图上作拟合对比?

叠加正态分布曲线到样本直方图的实现

要实现将标准正态分布曲线叠加到样本直方图上,你需要调整直方图的统计量类型,并确保所有绘图操作在同一个Matplotlib会话中执行。以下是完整的实现代码:

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
import math
import seaborn as sns

# 定义正态分布参数
mu = 0
variance = 1
sigma = math.sqrt(variance) 

# 生成样本数据
value = np.random.normal(loc=mu, scale=sigma, size=1000)

# 绘制样本直方图,设置stat="density"使y轴为概率密度
sns.histplot(value, stat="density", alpha=0.6, label="样本直方图")

# 生成正态分布曲线的x轴数据
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
# 绘制正态分布曲线
plt.plot(x, stats.norm.pdf(x, mu, sigma), color="red", linewidth=2, label="标准正态分布曲线")

# 添加图例、标题和坐标轴标签
plt.legend()
plt.title("样本直方图与标准正态分布曲线对比")
plt.xlabel("数值")
plt.ylabel("概率密度")

# 显示图形
plt.show()

关键说明:

  • stat="density":这个参数是核心,它将直方图的y轴从样本计数转换为概率密度,确保直方图的高度和正态分布的概率密度函数(PDF)取值范围匹配,两者能正确叠加。
  • 移除多余的plt.show():原第一段代码中的plt.show()会终止当前绘图会话,导致后续的直方图在新窗口绘制。将所有绘图操作放在同一个会话中,就能实现叠加效果。
  • 可视化优化:添加alpha参数让直方图半透明,方便观察曲线;增加图例、标题和坐标轴标签提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:10:23