ggplot2 - Chuỗi thời gian
Chuỗi thời gian là một biểu đồ đồ họa đại diện cho chuỗi các điểm dữ liệu theo một thứ tự thời gian cụ thể. Chuỗi thời gian là một chuỗi được thực hiện với một chuỗi tại các điểm thời gian cách nhau liên tiếp bằng nhau. Chuỗi thời gian có thể được coi là dữ liệu thời gian rời rạc. Tập dữ liệu mà chúng ta sẽ sử dụng trong chương này là tập dữ liệu “kinh tế học” bao gồm tất cả các chi tiết của chuỗi thời gian kinh tế Hoa Kỳ.
Khung dữ liệu bao gồm các thuộc tính sau được đề cập bên dưới:
Ngày | Tháng thu thập dữ liệu |
Psavert | Tỷ lệ tiết kiệm cá nhân |
Pce | Chi tiêu tiêu dùng cá nhân |
Thất nghiệp | Số người thất nghiệp hàng nghìn người |
Chưa được giải quyết | Thời gian thất nghiệp trung bình |
Pop | Tổng dân số hàng nghìn |
Tải các gói cần thiết và đặt chủ đề mặc định để tạo chuỗi thời gian.
> 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
Tạo một biểu đồ đường cơ bản tạo cấu trúc chuỗi thời gian.
> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)
Chúng ta có thể vẽ biểu đồ tập con dữ liệu bằng lệnh sau:
> # 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)
Tạo chuỗi thời gian
Ở đây chúng tôi sẽ vẽ biểu đồ các biến psavert và uempmed theo ngày. Ở đây chúng ta phải định hình lại dữ liệu bằng cách sử dụng gói gọn gàng hơn. Điều này có thể đạt được bằng cách thu gọn các giá trị psavert và uempmed trong cùng một cột (cột mới). Hàm R: collect () [hiddenr]. Bước tiếp theo liên quan đến việc tạo một biến nhóm với các mức = psavert và 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
Tạo nhiều biểu đồ dòng bằng cách sử dụng lệnh sau để xem mối quan hệ giữa “psavert” và “unmpmed” -
> ggplot(df, aes(x = date, y = value)) +
+ geom_line(aes(color = variable), size = 1) +
+ scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+ theme_minimal()