在ggplot

时间:2018-05-22 15:55:29

标签: r ggplot2 loess

我遇到了在ggplot中正确显示黄土线的问题。我有几个变量,其中没有一个可以低于零,例如高度,重量和丰度。我试图用黄土线在ggplot中绘制这些数据。使用一些组成的数据:

library(ggplot2)

df <- as.data.frame(rep(1:7, each = 5))

df[,2] <- c(0,1,5,0,6,0,7,2,9,1,1,18,4,2,34,8,18,24,56,12,12,18,24,63,48,
       40,70,53,75,98,145,176,59,98,165)

names(df) <- c("x", "y")

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_smooth() +
  scale_y_continuous(limits = c(-20,200))

enter image description here

除了显示平滑线周围的置信区间的阴影区域低于零并且评论者指出这是不可能的并且要求我改变它之外,这将是正常的。我认为这可以通过将y轴的下限设置为零来轻松完成:

ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_smooth() +
  scale_y_continuous(limits = c(0,200))

enter image description here

但是这使得黄土线周围阴影区域的一部分消失了。有没有办法让绘图工作时y轴限制为零,以便阴影区域的一部分被切断,或者在第一个位置设置黄土线的限制,这样就不会创建阴影低于零的区域?

2 个答案:

答案 0 :(得分:4)

我们可以计算覆盖ymin的{​​{1}}个{注意与stat_smooth的差异):

geom_smooth

reprex package(v0.2.0)创建于2018-05-22。

答案 1 :(得分:1)

 ggplot(df, aes(x=x, y=y)) +
   geom_point() +
   geom_smooth() +
   coord_cartesian(ylim = c(0,200))