在绘制时将线延伸到最后?

时间:2011-10-02 02:19:45

标签: r ggplot2

在这里提到这个问题时,我设法为我的数据绘制了一个ECDF。但是,我想知道是否有可能将线条扩展到图形的最左侧/右侧,就像基础R如何绘制它一样?有什么建议吗?

enter image description here

我希望线条看起来更像这样(延伸到图形的最左侧/右侧,而不是像上面那样突然结束):

enter image description here

2 个答案:

答案 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()

enter image description here

答案 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