在这里提到这个问题时,我设法为我的数据绘制了一个ECDF。但是,我想知道是否有可能将线条扩展到图形的最左侧/右侧,就像基础R如何绘制它一样?有什么建议吗?
我希望线条看起来更像这样(延伸到图形的最左侧/右侧,而不是像上面那样突然结束):
答案 0 :(得分:3)
可能目前还没有办法自动完成。 您可以通过向数据框添加手动限制来设置绘图范围。
# sample data frame
df <- data.frame(x = c(rnorm(100, -3), rnorm(100), rnorm(100, 3)), g = gl(3, 100))
df <- ddply(df, .(g), summarize, x = x, y = ecdf(x)(x))
# add x min/max for each levels
df2 <- rbind(df, ddply(df, .(g), function(x) data.frame(x = range(df$x), y = c(0, 1))))
ggplot(df2, aes(x, y, colour = g)) + geom_line()
答案 1 :(得分:1)
如果您需要确保该功能是单调的,您可以使用以下内容:
monotonic.y <- y;
n <- length(monotonic.y);
for (i in 1:n) {
monotonic.y[i] <- max(monotonic.y[1:i]);
}
并绘制monotonic.y
而不是y
。