我的时间序列不完整,意味着观察结果存在很大差距:
dat <- data.frame(
date = c(2000, 2001, 2002, 2009, 2010, 2011),
value1 = runif(6,1,100),
value2 = runif(6,1,100)
)
library("reshape2")
dat_long <- melt(dat, id="date")
dat_long$time <- ifelse(dat_long$date < 2009, "early", "late")
我想使用dat
绘制ggplot2
,但2002年和2009年的观察结果之间存在差距。实际上,应该有两组线:一组用于2000年,2001年和2002年,以及另一个是2009年,2010年和2011年(因此按time
分组)。
根据Line break when no data in ggplot2,我试过了
library("ggplot2")
ggplot(data=dat_long, aes(x=date, y=value, group=variable)) +
geom_line(aes(color=variable, group=time)) +
geom_point(aes(color=variable))
但这简单地结合了所有要点:
我的问题与Line break when no data in ggplot2之间的区别在于我有多行,这显然禁止在group=time
来电中使用geom_line(aes(...))
。
然后我尝试将facets作为第二好的解决方案:
ggplot(data=dat, aes(x=date, y=value, group=variable)) +
geom_line() + geom_point() + facet_grid( ~ time)