ggplot2基于x轴的着色图

时间:2014-12-11 20:20:48

标签: r ggplot2

我试图在沿着x轴的点之间绘制阴影的背景。这些点由变量(x)定义。这是一些数据:

mydata <- data.frame(year = (2000:2010), 
    x = c(0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1), 
    y = (0:10))

所以我希望将年份作为x轴并且有一条连接y点的线。然后我希望如果x = 1则背景为阴影,否则为正常。有什么想法吗?

编辑:如果在x发生变化时连接两点,你可以停止加分。

1 个答案:

答案 0 :(得分:1)

这可能不是很优雅,但它实现了我想要实现的目标。

mydata$y <- -5:5

mydata$x <- mydata$x*max(mydata$y)

ggplot(mydata, aes(x=year, y=y)) + geom_line() + geom_rect(aes(xmin=year-.5, xmax=year+.5, ymin=x*min(y), ymax=x*max(y)), alpha=.4)

注意:我编辑了y变量以反映您的数据特征

enter image description here