我有4个时间序列,但有些年份不见了。
当我绘制它们时,非连续年份已连接。
我想连续几年才能连接。我怎么能这样做?
这是一个可重复的例子:
set.seed(1234)
data <- data.frame(year=rep(c(2005,2006,2010, 2011 ),5),
value=rep(1:5,each=4)+rnorm(5*4,0,5),
group=rep(1:5,each=4))
data
ggplot(data, aes(x= year, y= value, group= as.factor(group), colour= as.factor(group))) +
geom_line()
答案 0 :(得分:5)
您可以插入NA
,ggplot
将完全按照您的意愿进行操作。
# generate all combinations of year/group
d <- expand.grid(min(data$year):max(data$year), unique(data$group))
# fill NA if combination is missing
d$val <- apply(d, 1,
function(x) if (nrow(subset(data, year == x[1] & group == x[2]))) 0 else NA)
# modify the original dataset
names(d) <- c("year", "group", "value")
data <- rbind(data, d[is.na(d$val), ])
ggplot(data, aes(x=year, y=value,
group=as.factor(group), colour=as.factor(group))) + geom_line()