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

如何使用Python绘制单变量(univariate)数据的正态分布曲线

Python 针对实际单变量数据绘制对应正态分布曲线的实现方法

核心逻辑是先基于你的实际样本计算均值和标准差,以这两个值为参数生成匹配的正态分布概率密度曲线即可,你可以搭配原始数据的归一化直方图同步展示,直观查看拟合效果。

完整可运行代码

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# 1. 加载你提供的样本数据
data_dict = {'RPM': {493: 7.2,
  494: 7.2,
  495: 7.2,
  496: 7.2,
  567: 8.4,
  568: 8.4,
  569: 8.4,
  570: 8.4,
  767: 18.0,
  768: 18.0,
  781: 23.4,
  782: 23.4,
  783: 23.4,
  784: 23.4,
  785: 23.4,
  806: 23.4,
  807: 23.4,
  808: 23.4,
  809: 23.4,
  810: 23.4,
  811: 23.4,
  812: 23.4,
  951: 23.4,
  952: 23.4,
  953: 23.4,
  954: 11.4,
  955: 11.4,
  957: 11.4,
  981: 19.2,
  982: 23.4,
  983: 23.4,
  984: 23.4,
  1062: 23.4,
  1063: 23.4,
  1064: 23.4,
  1065: 23.4,
  1066: 23.4,
  1068: 23.4,
  1069: 23.4,
  1070: 23.4,
  1071: 23.4,
  1072: 23.4,
  1073: 23.4,
  1074: 23.4,
  1075: 23.4,
  1076: 23.4,
  1077: 23.4,
  1079: 23.4,
  1119: 23.4,
  1120: 23.4,
  1121: 23.4,
  1122: 23.4,
  1123: 23.4,
  1125: 23.4,
  1126: 23.4,
  1127: 23.4,
  1128: 23.4,
  1129: 23.4,
  1130: 23.4,
  1132: 23.4,
  1133: 23.4,
  1134: 23.4,
  1135: 23.4,
  1136: 23.4,
  1137: 23.4,
  1159: 23.4,
  1162: 23.4,
  1164: 23.4,
  1165: 23.4,
  1166: 23.4,
  1167: 23.4,
  1168: 23.4,
  1169: 23.4,
  1171: 23.4,
  1172: 23.4,
  1173: 23.4,
  1174: 23.4}}
rpm_data = pd.Series(data_dict['RPM']).values

# 2. 计算样本的均值和标准差,作为正态分布的输入参数
mu = np.mean(rpm_data)
sigma = np.std(rpm_data, ddof=1) # ddof=1计算样本标准差,对应无偏估计

# 3. 生成x轴取值范围,覆盖数据的最小到最大值,再适当延伸边界
x = np.linspace(rpm_data.min() - 2, rpm_data.max() + 2, 1000)
# 计算对应x的正态分布概率密度值
p = norm.pdf(x, loc=mu, scale=sigma)

# 4. 绘制图形
plt.figure(figsize=(10,6))
# 先绘制原始数据的归一化直方图
plt.hist(rpm_data, bins=10, density=True, alpha=0.6, color='skyblue', label='原始RPM数据分布')
# 绘制拟合的正态分布曲线
plt.plot(x, p, 'k', linewidth=2, label=f'拟合正态分布 (μ={mu:.2f}, σ={sigma:.2f})')
plt.xlabel('RPM数值')
plt.ylabel('概率密度')
plt.legend()
plt.show()

代码说明

  • 如果你不需要展示直方图,只保留plt.plot(x, p, 'k', linewidth=2)部分即可输出纯正态分布曲线
  • 计算标准差时ddof=1是样本标准差的标准计算方式,如果你的数据是全量总体数据,可去掉该参数使用总体标准差
  • 可以根据你的需求调整直方图的bins参数、颜色、透明度等样式参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:04