是否可以覆盖R中expand_limits()设置的值

时间:2015-07-11 19:04:52

标签: r ggplot2

考虑以下功能:

plotSmth <- function(...) ggplot2::ggplot(...) + 
  expand_limits(x =c(0), y =0) 

是否可以覆盖expand_limits()

plotSmth设置的值

我尝试过类似的事情:

plotSmth(thisIsData, aes(x=xhere, y=yhere, colour=as.factor(foo), lty=as.factor(bar)  )  ) +
  expand_limits(x=c(10), y=c(0, 25))

但它仍然没有覆盖0 x中设置的plotSmth轴的expand_limits()

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

expand_limits添加了一个带有数据的虚拟层来拉伸轴,因此您无法轻松撤消。我想到了三种选择:

  1. 不要在expand_limits中使用plotSmth,也许xlim() / ylim()可以完成这项工作,而这些可以重置;
  2. 强制限制,例如coord_cartesian();
  3. 删除虚拟层
  4. p = qplot(1:2,1:2) + expand_limits(x=-1e3)
    p
    p$layers[2] <- NULL
    p