我的时间序列不完整,这意味着观察结果存在很大差距:
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
)。
根据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))
但这只是结合了所有要点:
我的问题和ggplot2 中没有数据时换行的区别在于我有多行,这显然禁止group=time
在我的geom_line(aes(...))
调用中使用。
然后我尝试了 facets 作为第二好的解决方案:
ggplot(data=dat, aes(x=date, y=value, group=variable)) +
geom_line() + geom_point() + facet_grid( ~ time)