Der Grund für die Lücken ist, dass einige Zeitreihen später als andere beginnen. Wenn der erste nicht verschwindende Wert erscheint, beginnt der neue Bereich mit einem nicht kontinuierlichen Sprung. Der darüber liegende Bereich wird jedoch durch lineare Interpolation mit dem nächsten Punkt verbunden. Dies führt zu der Lücke.
Betrachten Sie zum Beispiel die Lücke ganz links. Der Olivenanbau beginnt unmittelbar nach der Lücke mit einem Vertikalsprung im Jahr 1982. Die Grünfläche steigt jedoch linear von dem Wert von 1981 (wo die Olivenfläche Null ist) bis zum Wert von 1982 (wo die Olivenfläche plötzlich beiträgt).
Was könnten Sie tun, ist, zum Beispiel einen Wert von Null am Anfang jeder Zeitreihe hinzufügen, die nach 1975 beginnt ich dplyr
Funktionalität eines Datenrahmens dieser zusätzlichen ersten Jahren zu schaffen:
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
Wie Sie sehen können, passen diese drei neuen Werte genau zu den drei Lücken in Ihrem Plot. Jetzt können Sie diesen neuen Datenrahmen mit Ihrem data
und sortieren in der gleichen Art und Weise verbinden wie zuvor:
data_complete <- bind_rows(data, first_years) %>%
arrange(year, group)
und die Handlung hat dann keine Lücken:
ggplot(data_complete, aes(x=year,y=value, fill=group)) +
geom_area()
Wow, das war unglaublich klar, prägnant und hilfreich. Ich danke dir sehr!! – Jim