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

如何在R语言直方图中添加标注均值标准差的第二X轴?

给直方图添加标准差刻度的第二组X轴

要添加标注置信区间距离均值标准差数量的第二组X轴,你可以用axis()函数在图表顶部(side=3)绘制新轴,对应置信区间和均值的位置,标签使用标准差倍数格式(比如-2.576σ)。以下是修改后的完整代码:

mu <- 0.4
sd <- 0.3

dist <- rnorm(100000, mu, sd)

density <- seq(min(dist), max(dist), length = 40)

curve <- dnorm(density, mu, sd)

# 定义置信区间对应的标准差倍数
sigma_vals <- c(-2.576, -1.96, -1.645, 0, 1.645, 1.96, 2.576)
# 计算倍数对应的实际X轴位置
axis_pos <- mu + sigma_vals * sd
# 生成标准差格式的标签
sigma_labels <- paste0(sigma_vals, "σ")

hist(dist,
     probability = TRUE,
     ylim = c(0, max(curve)),
     xaxt = "n",
     col = "lightblue")
# 底部原始数值轴
axis(side = 1, at = seq(-1, 1.5, 0.1), labels = seq(-1, 1.5, 0.1))
# 顶部标准差刻度轴(设置红色标签区分)
axis(side = 3, at = axis_pos, labels = sigma_labels, col.axis = "darkred", lwd = 1)

lines(density, curve, col = "black", lwd = 2.5)
abline(v = c(mu-2.576*sd, mu+2.576*sd), col = "red", lty = 2, lwd = 2)
abline(v = c(mu-1.96*sd, mu+1.96*sd), col = "purple", lty = 2, lwd = 2)
abline(v = c(mu-1.645*sd, mu+1.645*sd), col = "darkgreen", lty = 2, lwd = 2)
abline(v = mu, col = "black", lty = 2, lwd = 2)

legend("topright", 
       legend = c("99%-CI", "95%-CI", "90%-CI", "Mean"),
       fill = c("red", "purple", "darkgreen", "black"),
       cex = 1,
       x.intersp = 1,  
       y.intersp = 1)

关键步骤说明:

  • 整理置信区间对应的标准差倍数为向量sigma_vals,包含负向区间、均值(0σ)和正向区间的倍数
  • 通过mu + sigma_vals * sd计算这些倍数对应的实际X轴位置
  • 使用axis(side=3)在图表顶部绘制第二组轴,传入位置和标准差标签,可通过col.axis设置标签颜色以区分原始轴

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:12:56