Violin plot ร่วมกับ Boxplot
หากต้องการคงสถิติสรุปที่มีประโยชน์ของ boxplot ไว้ โดยไม่สูญเสียข้อดีของ violin plot ก็สามารถเพิ่ม geom_boxplot() ซ้อนทับบน violin geometry ใน plot object ได้เลย
อย่างไรก็ตาม ปัญหาที่พบเมื่อทำแบบนี้คือ boxplot จะกว้างเกินไปจนดูไม่สวยงาม สิ่งที่ต้องการจริง ๆ คือเส้นแนวนอนเท่านั้น โชคดีที่ geom_boxplot() มีอาร์กิวเมนต์ width ไว้ปรับความกว้างของ boxplot เช่น 0.5 หมายถึงครึ่งหนึ่งของความกว้างปกติ
แก้ไข plot ที่สร้างไว้ให้เพิ่ม boxplot ระหว่าง violin geometry กับ point geometry นอกจากนี้ให้เปลี่ยนรูปแบบของจุดเป็น shape = 95 ซึ่งเป็นเครื่องหมาย tick แนวนอน และสุดท้าย อย่าลืมระบุความกว้างของ kernel ให้ผู้ใช้ทราบด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างภาพข้อมูลใน R
คำแนะนำการฝึกหัด
- เพิ่ม
geom_boxplot()ระหว่าง violin geometry กับ point geometry - ตั้งค่า
alphaของ box เป็น0และwidthเป็น0.3 - เปลี่ยน point geometry เป็น
shape = 95และลบอาร์กิวเมนต์sizeออก - เพิ่ม subtitle ให้ plot โดยใช้
labs(subtitle = 'Gaussian kernel SD = 2.5')
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
md_speeding %>%
filter(vehicle_color == 'RED') %>%
ggplot(aes(x = gender, y = speed)) +
geom_violin(bw = 2.5) +
# add a transparent boxplot and shrink its width to 0.3
___ +
# Reset point size to default and set point shape to 95
geom_point(alpha = 0.3, size = 0.5) +
# Supply a subtitle detailing the kernel width
___