วิธีการพล็อตอนุกรมเวลาใน r (พร้อมตัวอย่าง)
บ่อยครั้ง คุณอาจต้องการพล็อตอนุกรมเวลาใน R เพื่อให้เห็นภาพว่าค่าในอนุกรมเวลาเปลี่ยนแปลงไปอย่างไรเมื่อเวลาผ่านไป
บทช่วยสอนนี้จะอธิบายวิธีการดำเนินการอย่างรวดเร็วโดยใช้ไลบรารีการแสดงภาพข้อมูล ggplot2
การวางแผนอนุกรมเวลาพื้นฐานใน R
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน R:
#create dataset df <- data.frame(date = as . Date (" 2021-01-01 ") - 0:99, sales = runif (100, 10, 500) + seq (50, 149)^2) #view first six rows head(df) dirty date 1 2021-01-01 2845.506 2 2020-12-31 2837.849 3 2020-12-30 3115.517 4 2020-12-29 2847.161 5 2020-12-28 3374.619 6 2020-12-27 3182.005
เราสามารถใช้โค้ดต่อไปนี้เพื่อสร้างพล็อตอนุกรมเวลาพื้นฐานสำหรับชุดข้อมูลนี้โดยใช้ ggplot2:
library (ggplot2) #create time series plot p <- ggplot(df, aes (x=date, y=sales)) + geom_line() #display time series plot p
จัดรูปแบบวันที่บนแกน X
เราสามารถใช้ฟังก์ชัน scale_x_date() * เพื่อจัดรูปแบบวันที่ที่แสดงตามแนวแกน x ของโครงเรื่อง ฟังก์ชันนี้รับอาร์กิวเมนต์ต่อไปนี้:
- %d: วันเป็นตัวเลขระหว่าง 0 ถึง 31
- %a: ตัวย่อวันทำงาน (เช่น “อังคาร”)
- %A: วันที่ไม่มีตัวย่อในสัปดาห์ (เช่น “วันอังคาร”)
- %m : เดือนระหว่าง 0 ถึง 12
- %b: เดือนแบบย่อ (เช่น “ม.ค.”)
- %B: เดือนที่ไม่มีตัวย่อ (เช่น “มกราคม”)
- %y: ปีที่เป็นตัวเลข 2 หลัก (เช่น “21”)
- %Y: ปีที่เป็นตัวเลข 4 หลัก (เช่น “2021”)
- %W: สัปดาห์ของปีระหว่าง 0 ถึง 52
* เพื่อให้ฟังก์ชันนี้ทำงานได้ ตัวแปรแกน x จะต้องเป็นตัวแปรวันที่ หากยังไม่ได้ดำเนินการ คุณสามารถแปลงเป็นรายการได้อย่างรวดเร็วโดยใช้ as.Date( Variable_name)
รหัสต่อไปนี้แสดงวิธีการใช้รูปแบบใดรูปแบบหนึ่งเหล่านี้ในทางปฏิบัติ:
p + scale_x_date ( date_labels = " %b %Y ")
คุณยังสามารถเพิ่มการหยุดพักตามแกน x บ่อยขึ้น (หรือไม่บ่อยนัก) ได้โดยใช้อาร์กิวเมนต์ date_breaks ตัวอย่างเช่น เราสามารถแสดงวันที่ทุกๆ สองสัปดาห์ตามแนวแกน x:
p + scale_x_date ( date_breaks = " 2 week ")
นอกจากนี้เรายังสามารถเอียงป้ายกำกับแกน x ได้อย่างง่ายดายโดยใช้อาร์กิวเมนต์ต่อไปนี้:
p + theme ( axis.text.x = element_text (angle= 50 , hjust= 1 ))
สุดท้ายนี้ เราสามารถเปลี่ยนธีม ป้ายกำกับแกน และชื่อเรื่องเพื่อทำให้โครงเรื่องอนุกรมเวลาดูน่าดึงดูดยิ่งขึ้น:
p <- ggplot(df, aes (x=date, y=sales)) + geom_line( color =" turquoise4 ") + theme_minimal() + labs(x="", y=" Sales ", title=" Total Sales (Past 100 Days) ") + theme( plot.title = element_text (hjust=0.5, size=20, face=" bold ")) p
แหล่งข้อมูลเพิ่มเติม
คู่มือฉบับสมบูรณ์เกี่ยวกับธีม ggplot2 ที่ดีที่สุด
คู่มือฉบับสมบูรณ์สำหรับชื่อ ggplot2
วิธีสร้างแปลงแบบเคียงข้างกันใน ggplot2