在ggplot中的stat_ecdf之后限制X轴?

dfr*_*kow 1 r ggplot2

如何改变 的 X 轴stat_ecdf,但不改变 ecdf 的计算?

示例代码:

df <- data.frame(x=c(1,2,3,4,5))

# 1 to 5
ggplot(df, aes(x)) + stat_ecdf()

# 1 to 3, but stat_ecdf no longer calculated on the whole range
ggplot(df, aes(x)) + stat_ecdf() + scale_x_continuous(limits=c(NA,3))
Run Code Online (Sandbox Code Playgroud)

正如我所期望的那样,第一个图变为 1.0 x 5:

1 至 5

第二张图从 1 到 3(良好),但最终结果为 y=1 而不是 y=0.66:

1 至 3

这可能是因为 是stat_ecdf在可见窗口上计算的,但我希望它在所有数据上计算。

我很确定我以前问过这个问题,但我找不到。

小智 6

一般情况下,在计算汇总统计数据之前,会先删除这些点。使用coord_cartesian()可以解决这个问题。尝试:

ggplot(df, aes(x)) + stat_ecdf() +
  coord_cartesian(xlim = c(0, 3))
Run Code Online (Sandbox Code Playgroud)