ギャップの理由は、一部の時系列が他の時系列より遅く開始されるためです。最初のゼロでない値が現れると、新しい領域は非連続的なジャンプで始まります。ただし、すぐ上の領域は、線形補間によって次のポイントに接続されます。この結果、ギャップが生じます。
たとえば、一番左のギャップを見てください。オリーブの領域は、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
ご覧のとおり、これら 3 つの新しい値は、プロットの 3 つのギャップに正確に適合します。data
これで、これらの新しいデータ フレームを以前と同じ方法で並べ替えと組み合わせることができます。
data_complete <- bind_rows(data, first_years) %>%
arrange(year, group)
そして、プロットにはギャップがありません。
ggplot(data_complete, aes(x=year,y=value, fill=group)) +
geom_area()
