差距的原因是某些时间序列比其他时间序列开始晚。当第一个非消失值出现时,新区域以非连续跳跃开始。然而,上面的区域通过线性插值连接到下一个点。这导致了差距。
例如,查看最左侧的间隙。橄榄区在 1982 年的垂直跳跃之后开始。然而,绿色区域从 1981 年的值(橄榄面积为零)线性增加到 1982 年的值(橄榄面积突然贡献)。
例如,您可以在 1975 年之后开始的每个时间序列的开头添加一个零值。我使用dplyr
功能来创建这些额外的第一年的数据框:
first_years <- group_by(data, group, group_id) %>%
summarise(year = min(year) - 1) %>%
filter(year > 1974) %>%
mutate(value = 0, value_pct = 0)
first_years
## Source: local data frame [3 x 5]
## Groups: group [3]
##
## group group_id year value value_pct
## (fctr) (int) (dbl) (dbl) (dbl)
## 1 c 10006 1981 0 0
## 2 e 10022 2010 0 0
## 3 i 24060 2002 0 0
如您所见,这三个新值恰好适合您的绘图中的三个空白。data
现在,您可以像以前一样将这些新数据框与您的和排序组合:
data_complete <- bind_rows(data, first_years) %>%
arrange(year, group)
然后情节没有差距:
ggplot(data_complete, aes(x=year,y=value, fill=group)) +
geom_area()
