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

如何用ggplot2绘制向量的ECDF图?代码报错求助

解决ggplot2绘制ECDF图的问题

问题根源

  1. 初始代码缺失闭合括号,且错误使用了不存在的列名height
  2. 参考代码手动构造的y向量长度与数据不匹配,导致行数不一致报错

正确实现步骤

1. 整理数据

先将你的数值向量转换为带列名的数据框:

# 提取目标向量
data_vec <- exp(rfcaret_test1000)
# 转换为数据框并命名列
df <- data.frame(value = data_vec)

2. 绘制ECDF图

用stat_ecdf可以直接自动计算累积概率,无需手动构造线段:

  • 点形式ECDF:
library(ggplot2)
ggplot(df, aes(x = value)) +
  stat_ecdf(geom = "point", color = "#2E86AB") +
  labs(x = "样本数值", y = "累积概率", title = "样本ECDF点图") +
  theme_minimal()
  • 阶梯线形式ECDF(更常用):
ggplot(df, aes(x = value)) +
  stat_ecdf(geom = "step", color = "#F24C3D", size = 1) +
  labs(x = "样本数值", y = "累积概率", title = "样本ECDF阶梯图") +
  theme_minimal()

错误说明

  • 初始代码中as.data.frame(exp(rfcaret_test1000)少了闭合括号),且数据框默认列名不是height,导致aes(height)无法识别列。
  • 参考代码中手动定义的y向量仅6个元素,但你的数据有20个值,加上首尾扩展的-Inf/Inf后需要21个元素,两者行数不匹配引发报错。stat_ecdf会自动计算每个数值对应的累积概率,无需手动构造y值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:43:03