เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

โปรยจุดข้อมูลลงมา

ความเป็น bimodal ที่เพิ่มขึ้นในช่วงต้นสัปดาห์ อาจ น่าสนใจ แต่ควรพล็อตจุดข้อมูลแต่ละจุดไว้ใต้เส้น density เพื่อทำความเข้าใจว่า KDE แก้ปัญหาการ interpolation อย่างไร ก่อนสรุปผล

โค้ดจากแบบฝึกหัดก่อนหน้าได้เพิ่ม point geometry เข้ามาเพื่อจุดประสงค์นี้แล้ว แต่ผลลัพธ์ที่ได้ยังไม่สวยงามนัก เราจะปรับปรุงด้วยวิธีต่อไปนี้

ขั้นแรก ลดค่า alpha ของจุดลงเล็กน้อยเพื่อให้มองเห็นส่วนที่ซ้อนทับกัน จากนั้นเปลี่ยนรูปร่างของจุดเป็นเส้นแนวตั้งแบบ geom_rug() ('|')

หากรันโค้ดในขั้นตอนนี้ จะเห็นว่าจุดต่าง ๆ ทับซ้อนกับรูปร่างของ density อย่างน่าเกลียด เราจึงต้อง 'nudge' หรือเลื่อนเครื่องหมายเหล่านั้นลงตามแกน y เล็กน้อย โดยใช้ argument position ร่วมกับฟังก์ชันช่วย position_nudge()

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างภาพข้อมูลใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ลดค่า alpha ของจุดลงเหลือ 0.2 เพื่อแสดงส่วนที่ซ้อนทับกัน
  • เปลี่ยนรูปร่าง shape ของเส้นเป็น '|' เพื่อใช้พื้นที่ได้อย่างมีประสิทธิภาพมากขึ้น
  • เลื่อนจุดลงด้านล่างเพื่อไม่ให้ทับซ้อนกับรูปร่าง density ด้วย position = position_nudge(y = -0.05)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

md_speeding %>% 
    mutate(day_of_week = factor(day_of_week, levels = c("Mon","Tues","Wed","Thu","Fri","Sat","Sun") )) %>% 
    ggplot(aes( x = percentage_over_limit, y = day_of_week)) + 
    geom_point(
        # make semi-transparent with alpha = 0.2
        # turn points to vertical lines with shape = '|'
        # nudge the points downward by 0.05
    ) +
    geom_density_ridges(bandwidth = 3.5, alpha = 0.7) +
    scale_x_continuous(limits = c(0,150), expand  = c(0,0)) +
    labs(subtitle = 'Guassian kernel SD = 3.5') +
    theme( axis.ticks.y = element_blank() )
แก้ไขและรันโค้ด