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

如何在R语言中绘制累积分布图?

R语言绘制累积分布图的几种方法

1. 基础R原生方法

用ecdf()函数生成经验累积分布函数,再通过plot()直接绘制,适合快速出图:

# 以mtcars数据集的mpg变量为例
ecdf_func <- ecdf(mtcars$mpg)
plot(ecdf_func, 
     main = "MPG累积分布图", 
     xlab = "每加仑英里数", 
     ylab = "累积概率", 
     col = "darkblue")
  • 说明:ecdf()返回的是一个函数,绘制后x轴是变量取值,y轴是小于等于该值的观测占总样本的比例。

2. ggplot2绘图(更美观灵活)

先加载ggplot2包,用stat_ecdf()图层实现,支持自定义样式:

library(ggplot2)

ggplot(mtcars, aes(x = mpg)) +
  stat_ecdf(geom = "step", col = "darkred", size = 1) + # step是阶梯线,也可以换成geom="line"
  labs(title = "MPG累积分布图",
       x = "每加仑英里数",
       y = "累积概率") +
  theme_bw() # 切换主题,可选theme_minimal()等

3. 叠加理论累积分布(比如正态分布)

如果需要对比经验分布和理论分布,可手动计算理论累积概率后叠加:

# 生成x轴序列
x_range <- seq(min(mtcars$mpg), max(mtcars$mpg), length.out = 100)
# 计算正态分布的累积概率
norm_cdf <- pnorm(x_range, mean = mean(mtcars$mpg), sd = sd(mtcars$mpg))

# 先画经验分布
plot(ecdf_func, main = "经验vs理论累积分布", xlab = "每加仑英里数", ylab = "累积概率")
# 叠加理论分布曲线
lines(x_range, norm_cdf, col = "green", lty = 2, lwd = 1.5)
# 添加图例
legend("bottomright", 
       legend = c("经验分布", "正态理论分布"),
       col = c("black", "green"),
       lty = c(1, 2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:55:20