ggplot2:如果时间间隔不要连接点

时间:2015-07-13 11:04:18

标签: r ggplot2

我有4个时间序列,但有些年份不见了。

当我绘制它们时,非连续年份已连接。

enter image description here

我想连续几年才能连接。我怎么能这样做?

这是一个可重复的例子:

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()

1 个答案:

答案 0 :(得分:5)

您可以插入NAggplot将完全按照您的意愿进行操作。

# 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()

enter image description here