ggplot2 - Szeregi czasowe
Szereg czasowy to wykres graficzny, który przedstawia serię punktów danych w określonej kolejności czasowej. Szereg czasowy to sekwencja utworzona z sekwencji w kolejnych równych odstępach czasu. Szeregi czasowe można traktować jako dane dyskretne. Zbiór danych, którego będziemy używać w tym rozdziale, to zbiór danych „ekonomicznych”, który zawiera wszystkie szczegóły szeregu czasowego dla gospodarki amerykańskiej.
Ramka danych zawiera następujące atrybuty wymienione poniżej -
Data | Miesiąc zbierania danych |
Psavert | Stopa oszczędności osobistych |
Szt | Spożycie osobiste |
Bezrobotny | Liczba bezrobotnych w tysiącach |
Niewzruszony | Mediana czasu trwania bezrobocia |
Muzyka pop | Całkowita populacja w tysiącach |
Załaduj wymagane pakiety i ustaw domyślną kompozycję, aby utworzyć serię czasową.
> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date pce pop psavert uempmed unemploy
<date> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1967-07-01 507. 198712 12.6 4.5 2944
2 1967-08-01 510. 198911 12.6 4.7 2945
3 1967-09-01 516. 199113 11.9 4.6 2958
4 1967-10-01 512. 199311 12.9 4.9 3143
5 1967-11-01 517. 199498 12.8 4.7 3066
6 1967-12-01 525. 199657 11.8 4.8 3018
Utwórz podstawowe wykresy liniowe, które utworzą strukturę szeregów czasowych.
> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)
Możemy wykreślić podzbiór danych za pomocą następującego polecenia -
> # Plot a subset of the data
> ss <- subset(economics, date > as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)
Tworzenie szeregów czasowych
Tutaj wykreślimy zmienne psavert i nieempmed według dat. Tutaj musimy zmienić kształt danych za pomocą pakietu tidyr. Można to osiągnąć, zwijając wartości psavert i uempmed w tej samej kolumnie (nowa kolumna). Funkcja R: zbieraj () [tidyr]. Następnym krokiem jest utworzenie zmiennej grupującej, której poziomy = psavert i uempmed.
> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df <- economics %>%
+ select(date, psavert, uempmed) %>%
+ gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date variable value
<date> <chr> <dbl>
1 1967-07-01 psavert 12.6
2 1967-08-01 psavert 12.6
3 1967-09-01 psavert 11.9
Utwórz wieloliniowe wykresy za pomocą następującego polecenia, aby przyjrzeć się relacji między „psavert” i „unempmed” -
> ggplot(df, aes(x = date, y = value)) +
+ geom_line(aes(color = variable), size = 1) +
+ scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+ theme_minimal()