Trích xuất để vẽ biểu đồ
Việc trích xuất các thành phần từ một datetime đặc biệt hữu ích khi khám phá dữ liệu. Ở phần trước của chương, bạn đã nhập dữ liệu thời tiết theo ngày ở Auckland và tạo biểu đồ chuỗi thời gian cho nhiệt độ tối đa theo ngày trong mười năm. Mặc dù biểu đồ đó cho bạn cái nhìn tổng quan tốt về toàn bộ mười năm, nhưng rất khó để thấy mẫu lặp lại theo năm.
Trong bài tập này, bạn sẽ dùng các thành phần của ngày tháng để khám phá mô hình nhiệt độ tối đa trong năm. Bước đầu tiên là tạo một vài cột mới để chứa các phần được trích xuất, sau đó bạn sẽ dùng chúng trong một vài biểu đồ.
Bài tập này là một phần của khóa học
Làm việc với Ngày và Giờ trong R
Hướng dẫn bài tập
- Dùng
mutate()để tạo ba cột mới:year,ydayvàmonthlần lượt chứa các thành phần tương ứng của cộtdate. Đừng quên gắn nhãn các tháng bằng tên của chúng. - Tạo một biểu đồ với
ydaytrên trục x,max_temptrên trục y, trong đó các đường được nhóm theoyear. Mỗi năm là một đường trên biểu đồ này, với trục x chạy từ 1 Thg 1 đến 31 Thg 12. - Để có một góc nhìn khác, tạo một ridgeline plot (trước đây gọi là joyplot) với
max_temptrên trục x,monthtrên trục y, sử dụnggeom_density_ridges()từ góiggridges.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
library(ggplot2)
library(dplyr)
library(ggridges)
# Add columns for year, yday and month
akl_daily <- akl_daily %>%
mutate(
___ = ___(date),
___ = ___(date),
___ = ___(date, ___))
# Plot max_temp by yday for all years
ggplot(akl_daily, aes(x = ___, y = ___)) +
geom_line(aes(group = ___), alpha = 0.5)
# Examine distribution of max_temp by month
ggplot(akl_daily, aes(x = ___, y = ___, height = ..density..)) +
geom_density_ridges(stat = "density")