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

R语言中如何为给定p(y)分布表正确绘制概率直方图

错误原因

你写的代码参数传递完全不符合hist()函数的语法规则:hist()的第一个入参要求传入原始观测值向量,由函数自动计算分箱和频数,你直接把概率向量、y取值向量作为前两个参数传入,函数会把概率值当成原始数据做分箱统计,自然得不到对应y取值的概率分布结果。

正确实现方案

对于离散型随机变量的概率分布,用barplot()绘制是最简便准确的,设置柱子无间隙即可匹配直方图的视觉样式:

# 定义随机变量取值和对应概率
y <- c(1, 2, 3, 4)
p_y <- c(0.4, 0.3, 0.2, 0.1)

# 绘制概率直方图
barplot(
  height = p_y,
  names.arg = y,
  main = "p(y) Probability Histogram",
  xlab = "Discrete value of y",
  ylab = "Probability p(y)",
  ylim = c(0, 0.45),
  space = 0 # 柱子间无空隙,符合直方图展示要求
)

如果需要使用hist()函数实现,需要先按概率权重生成模拟样本,同时手动设置分箱断点对齐离散y的取值:

# 按概率比例生成模拟观测样本
simulated_y <- rep(y, times = p_y * 100)
# 调用hist绘图,设置断点让每个柱子居中对应y的取值,纵轴展示概率而非频数
hist(
  x = simulated_y,
  breaks = seq(0.5, 4.5, by = 1),
  freq = FALSE,
  main = "p(y) Probability Histogram",
  xlab = "Discrete value of y",
  ylab = "Probability p(y)"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:45:39