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

如何在R中使用ggplot2同图绘制经验CDF与自定义理论CDF

可直接运行的完整实现代码
# 未安装依赖包可先运行:install.packages(c("ggplot2", "ggeasy"))
library(ggplot2)
library(ggeasy)

# 输入原始数据
data1 <- c(12.20,23.56,23.74,25.87,31.98,37,41.35,47.38,55.46,
           58.36,63.47,68.46,78.26,74.47,81.43,84,92,94,
           110,112,119,127,130,133,140,146,155,
           159,173,179,194,195,209,249,281,319,
           339,432,469,519,633,725,817,1776)
df <- data.frame(data1)

# 定义理论CDF参数
alpha <- 273.811028
lambda <- 29.834133
beta <- 1.135448

# 自定义理论CDF计算函数
custom_cdf <- function(x) {
  (alpha^exp(-lambda * x^(-beta)) - 1) / (alpha - 1)
}

# 绘制对比图
ggplot(df, aes(x = data1)) +
  # 绘制经验累积分布ECDF,将颜色映射到aes自动生成图例
  stat_ecdf(geom = "step", aes(color = "经验累积分布(ECDF)"), linewidth = 1) +
  # 绘制自定义理论CDF,同样映射颜色生成图例,用虚线区分
  stat_function(fun = custom_cdf, aes(color = "理论累积分布(CDF)"), linewidth = 1, linetype = "dashed") +
  # 配置标签
  labs(
    x = "Time",
    y = "Fn(x)",
    title = "ECDF与自定义理论CDF对比图",
    color = "分布类型"
  ) +
  # 自定义两种分布的显示颜色
  scale_color_manual(values = c("经验累积分布(ECDF)" = "#165DFF", "理论累积分布(CDF)" = "#FF4D4F")) +
  theme_light() +
  easy_center_title()

效果说明

  • 自动基于数据范围生成理论CDF的采样点,无需手动计算序列值
  • 两种分布的样式可通过修改linewidth(线宽)、linetype(线型)、scale_color_manual里的色值自行调整
  • 图例自动生成,无需额外手动配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:02