การดึงข้อมูลเพื่อสร้างกราฟ
การดึงส่วนประกอบต่าง ๆ จาก datetime มีประโยชน์มากในการสำรวจข้อมูล ก่อนหน้านี้ในบทเรียนนี้ เราได้นำเข้าข้อมูลรายวันเกี่ยวกับสภาพอากาศในเมืองโอ๊กแลนด์ และสร้างกราฟอนุกรมเวลาของอุณหภูมิสูงสุดรายวันตลอดสิบปี แม้กราฟดังกล่าวจะให้ภาพรวมของทั้งสิบปีได้ดี แต่ก็ยากที่จะมองเห็นรูปแบบที่เกิดขึ้นในแต่ละปี
ในแบบฝึกหัดนี้ คุณจะใช้ส่วนประกอบของวันที่เพื่อสำรวจรูปแบบของอุณหภูมิสูงสุดตลอดทั้งปี ขั้นแรกคือการสร้างคอลัมน์ใหม่เพื่อเก็บค่าที่ดึงออกมา จากนั้นจึงนำไปใช้ในกราฟสองรูปแบบ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำงานกับวันที่และเวลาใน R
คำแนะนำการฝึกหัด
- ใช้
mutate()เพื่อสร้างสามคอลัมน์ใหม่ ได้แก่year,ydayและmonthซึ่งแต่ละคอลัมน์เก็บส่วนประกอบที่สอดคล้องกันของคอลัมน์dateอย่าลืมกำหนดชื่อเดือนให้กับคอลัมน์monthด้วย - สร้างกราฟโดยให้
ydayอยู่บนแกน x และmax_tempอยู่บนแกน y โดยแบ่งเส้นตามปีในyearแต่ละปีจะแสดงเป็นเส้นหนึ่งเส้นบนกราฟ โดยแกน x ครอบคลุมตั้งแต่ 1 ม.ค. ถึง 31 ธ.ค. - เพื่อมองข้อมูลในมุมอื่น ให้สร้างกราฟ ridgeline (เดิมรู้จักกันในชื่อ joyplot) โดยให้
max_tempอยู่บนแกน x และmonthอยู่บนแกน y โดยใช้geom_density_ridges()จากแพ็กเกจggridges
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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")