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

如何在R语言中绘制含均值、标准差、最小值及曲线占比的正态分布图?

问题描述

给定正态分布参数:

mean_value_VO2 <- 250.57
min_value_VO2 <- 128.16
sd_value_VO2 <- 351.74
# 曲线下面积占比:63.6%

需要绘制与目标论文中图6一致的图形,原尝试代码效果不符合预期,需在图中标注均值=250.57、最小值=128.16、标准差=351.74以及**曲线下面积占比63.6%**这些数值。

原尝试代码:

# Create a vector of x values
x <- seq(min_value_VO2, mean_value_VO2 + 2*sd_value_VO2, length = 27)

# Calculate the y values using the normal distribution function
y <- dnorm(x, mean = mean_value_VO2, sd = sd_value_VO2)

# Plot the curve
plot(x, y, type = "l", xlab = "X-axis label", ylab = "Y-axis label")
改进后的解决方案

以下是基于base R的完整代码,实现平滑曲线绘制、目标区域填充及所有参数标注:

# 定义核心参数
mean_value_VO2 <- 250.57
min_value_VO2 <- 128.16
sd_value_VO2 <- 351.74
proportion <- 63.6

# 生成密集x值,保证曲线平滑
x_full <- seq(min_value_VO2 - sd_value_VO2, mean_value_VO2 + 2*sd_value_VO2, length = 1000)
y_full <- dnorm(x_full, mean = mean_value_VO2, sd = sd_value_VO2)

# 计算对应63.6%面积的分位点(从左到该点的面积占比)
q <- qnorm(proportion/100, mean = mean_value_VO2, sd = sd_value_VO2)
# 准备填充区域的坐标
x_fill <- seq(min_value_VO2, q, length = 500)
y_fill <- dnorm(x_fill, mean = mean_value_VO2, sd = sd_value_VO2)

# 初始化绘图,调整坐标轴标签和范围
plot(x_full, y_full, type = "l", lwd = 2, 
     xlab = "VO2 指标", ylab = "概率密度", 
     main = "正态分布曲线及区域占比",
     xlim = c(min_value_VO2 - 50, mean_value_VO2 + 2*sd_value_VO2 + 50))

# 填充曲线下63.6%的区域(半透明蓝色)
polygon(c(min_value_VO2, x_fill, q), c(0, y_fill, 0), col = "#87CEEB80", border = NA)

# 添加关键数值的垂直线
abline(v = mean_value_VO2, lty = 2, col = "red")    # 均值虚线
abline(v = min_value_VO2, lty = 3, col = "darkgreen")  # 最小值点线
abline(v = q, lty = 3, col = "blue")   # 占比分位点线

# 添加文本标注,调整位置避免重叠
text(mean_value_VO2, max(y_full)*0.9, paste("均值 =", mean_value_VO2), col = "red", pos = 4)
text(min_value_VO2, max(y_full)*0.8, paste("最小值 =", min_value_VO2), col = "darkgreen", pos = 4)
text(q, max(y_full)*0.7, paste("曲线下面积占比 =", proportion, "%"), col = "blue", pos = 2)
text(mean_value_VO2 + sd_value_VO2, max(y_full)*0.6, paste("标准差 =", sd_value_VO2), col = "black", pos = 4)

关键调整说明

  • 用1000个点生成x值,替代原代码的27个点,让曲线更平滑自然
  • 通过qnorm()计算对应占比的分位点,填充该区域以直观展示63.6%的面积
  • 用不同线型、颜色的垂直线区分均值、最小值等关键数值
  • 调整标注文本的位置和颜色,确保信息清晰不重叠
  • 自定义坐标轴标签和标题,贴合实际指标含义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:22:46