You need to enable JavaScript to run this app. RStudio如何绘制多条件二项分布条形图?现有代码正确性咨询
优惠活动
大模型
产品
解决方案
定价
更多

RStudio如何绘制多条件二项分布条形图?现有代码正确性咨询

现有代码的问题判断
  • 目前的写法存在大量冗余,且无法实现多条件同图对比的绘图需求。
  • 两段重复代码的计算逻辑没有实质差异:你定义的xP50和xP5都是取值范围0-50的整数向量,调用dbinom()时传入的样本量50、发芽概率0.5参数完全一致,生成的prob1和prob2是完全相同的概率值,并非你预期的“不同条件下的概率结果”。
  • 两次单独调用barplot()会在绘图面板生成两张完全独立的分离图形,无法直观横向对比不同场景的概率差异,不符合你想要的多条件条形图的绘制目标。
正确的实现逻辑

题目要求的4类概率场景,本质是基于同一组二项分布基础概率值做不同区间的筛选/求和计算,完全不需要重复编写计算逻辑:

  1. 所有种子发芽的概率:对应发芽数=50位置的单点概率值
  2. 最多5粒种子发芽的概率:对应发芽数0到5的区间累积概率
  3. 至少4粒种子发芽的概率:对应发芽数4到50的区间累积概率
  4. 其余同类场景的概率:为上述三类场景覆盖后剩余区间的概率总和

参考实现代码

# 全量二项分布概率只需要计算一次
x <- 0:50
full_prob <- dbinom(x, size = 50, prob = 0.5)

# 整理多场景对应的概率值
scenario_df <- data.frame(
  场景 = c("全部50粒发芽", "最多5粒发芽", "至少4粒发芽", "其余场景"),
  概率 = c(
    full_prob[x == 50],
    sum(full_prob[x <= 5]),
    sum(full_prob[x >= 4]),
    1 - full_prob[x == 50] - sum(full_prob[x <=5]) - sum(full_prob[x >=4])
  )
)

# 单图绘制多条件对比条形图
barplot(概率 ~ 场景, data = scenario_df,
        xlab = "发芽场景", ylab = "对应概率大小",
        col = c("#e63946", "#457b9d", "#1d3557", "#a8dadc"))

补充说明

如果你想要保留完整的二项分布概率条形图,同时高亮标注你关心的特殊场景区间,不需要重复生成两张独立的图,可以在全量分布的条形图基础上,通过修改柱形颜色、添加文本标注的方式,直接在同一图表中标记出对应场景的位置即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 22:45:01