当我将geom_vline()
与facet_grid()
结合使用时:
DATA <- data.frame(x = 1:6,y = 1:6, f = rep(letters[1:2],3))
ggplot(DATA,aes(x = x,y = y)) +
geom_point() +
facet_grid(f~.) +
geom_vline(xintercept = 2:3,
colour =c("goldenrod3","dodgerblue3"))
我收到一条说明Error: Aesthetics must be either length 1 or the same as the data (4): colour
的错误消息,因为每个方面有两行,并且有两个方面。解决这个问题的一种方法是使用rep(c("goldenrod3","dodgerblue3"),2)
,但这要求每次更改刻面变量时,我还必须计算刻面数并替换幻数(2
)。调用rep()
,这使得重新使用ggplot代码变得不那么灵活。
有没有办法直接从ggplot获取facet的数量,以便在这种情况下使用?