我试图只生成一个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))
然而这失败了
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()
图中添加任意数量的点?
答案 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))