ggplot2错误:scale_x_date显示/不删除指定限制之外的数据

k13*_*k13 9 r ggplot2

我有一个问题,ggplot2即显示超出规模中指定限制的数据.见下面的例子.如果限制设置为这些值,为什么我在图表中显示2009/01/01之前和2015/01/01之后的点?

library(ggplot2)
library(scales)
set.seed(100)
z <- seq.Date(as.Date("2008/12/1"), as.Date("2015/12/14"), "day")
l <- expand.grid(z, c("a", "b", "c"))
w <- data.frame(x= l[, 1], t = l[, 2])
w$val <- runif(nrow(w))
ggplot(data=w, aes_string(x="x", y="val"))+scale_x_date(
  labels = date_format("%m/%d/%Y"),
  limits= c(as.Date("2009/1/1"), as.Date("2015/1/1")),
  breaks = "1 year")+
  geom_point(aes(color = t))
Run Code Online (Sandbox Code Playgroud)

是否仍然可以按指定的方式保留中断/缩放,但只使用ggplot /删除数据超出限制而不预先过滤数据?这对我来说似乎是个错误.文档声明限制过滤器数据.

结果情节

Ben*_*ker 6

这对我来说看起来像个错误.

library(ggplot2)
library(scales)
set.seed(100)
z <- seq.Date(as.Date("2008/12/1"), as.Date("2015/12/14"), "day")
l <- expand.grid(z, c("a", "b", "c"))
w <- data.frame(x= l[, 1], t = l[, 2])
w$val <- runif(nrow(w))
n <- as.Date("2009/1/1")
Run Code Online (Sandbox Code Playgroud)

scale_x_continuous:

ggplot(w,aes(as.numeric(x),val))+geom_point()+
    scale_x_continuous(limits=c(as.numeric(n),NA))+
      geom_vline(xintercept=as.numeric(n),colour="red")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在scale_x_date:

ggplot(w,aes(x,val))+geom_point()+
    scale_x_date(limits=c(n,NA))+
      geom_vline(xintercept=as.numeric(n),colour="red")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我会在ggplot问题列表中发布这个,并在此期间解决它subset().