เปลี่ยนแกน y เป็น density
โดยค่าเริ่มต้น แกน y จะแสดงเป็น 'count' หรือจำนวนจุดข้อมูลที่ตกอยู่ในแต่ละช่วง (bin) ซึ่งอ่านค่าได้ง่ายและเข้าใจง่าย แต่ถ้าต้องการตีความกราฟในรูปแบบของ density curve ที่แท้จริงล่ะ? กล่าวคือ ผลรวมของ (ความกว้างแท่ง) * (ความสูงแท่ง) ทุกแท่งจะเท่ากับ 1 พอดี
วิธีทำนั้นง่ายมาก เพียงเพิ่ม y = stat(density) เข้าไปใน aesthetic mappings ก็จะปรับสเกลแกน y จากการนับจำนวนให้เป็นการประมาณค่าความน่าจะเป็นเชิงประจักษ์ (empirical probability) โดยรูปทรงของกราฟจะไม่เปลี่ยนแปลงเลย เพียงแต่การตีความแกน y จะแตกต่างออกไป
ลองนำไปใช้กับข้อมูลชั่วโมงที่ผู้ขับขี่ถูกจับในข้อหาขับรถเร็วเกินกำหนด (hour_of_day) นอกจากนี้ ให้ลดความทึบแสงของแท่งกราฟลงเล็กน้อย เพื่อให้เส้นกริดแสดงผ่านออกมา ช่วยให้เปรียบเทียบข้อมูลได้ง่ายขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างภาพข้อมูลใน R
คำแนะนำการฝึกหัด
- กำหนด x-aesthetic เป็น
hour_of_day - กำหนด y-aesthetic เป็น
stat(density) - เปลี่ยนค่า
alphaในgeom_histogram()เป็น 0.8
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
ggplot(md_speeding) +
geom_histogram(
# set x and y aesthetics to hour_of_day and stat(density) respectively.
___
# make points see-through by setting alpha to 0.8
___
)