将多个点添加到ggplot ecdf图中

时间:2017-07-17 14:19:10

标签: r dataframe plot ggplot2 statistics

我试图只生成一个ggplot C.D.F.我的一些数据的情节。我也希望能够将任意数量的百分位数绘制为顶部的点。我有一个解决方案,可以为我的曲线添加一个点但是没有多个值。

这适用于绘制一个百分位值

TestDf <- as.data.frame(rnorm(1000))
names(TestDf) <- c("Values")
percentiles <- c(0.5)

ggplot(data = TestDf, aes(x = Values)) +
  stat_ecdf() +
  geom_point(aes(x = quantile(TestDf$Values, percentiles),
                 y = percentiles))

Here is the output

然而这失败了

TestDf <- as.data.frame(rnorm(1000))
names(TestDf) <- c("Values")
percentiles <- c(0.25,0.5,0.75)

ggplot(data = TestDf, aes(x = Values)) +
  stat_ecdf() +
  geom_point(aes(x = quantile(TestDf$Values, percentiles),
                 y = percentiles))

有错误

  

错误:美学必须是长度1或与数据(1000)相同:x,y

如何在stat_ecdf()图中添加任意数量的点?

1 个答案:

答案 0 :(得分:1)

您需要在美学之外定义新数据集。 aes是指您用于制作CDF的原始数据框(在原始ggplot参数中)。

ggplot(data = TestDf, aes(x = Values)) +
  stat_ecdf() +
  geom_point(data = data.frame(x=quantile(TestDf$Values, percentiles),
              y=percentiles), aes(x=x, y=y))

enter image description here