การวาดรูปหลายเหลี่ยม
แผนที่โคโรพลีท (choropleth map) คือแผนที่ที่ระบายสีรูปหลายเหลี่ยมตามค่าของตัวแปรใดตัวแปรหนึ่ง ใน data frame ward_sales มีข้อมูลการขายบ้านที่สรุปรวมไว้ในระดับ ward เป้าหมายคือสร้างแผนที่ที่แต่ละ ward ถูกระบายสีตามค่าสรุปที่เลือก ได้แก่ จำนวนการขาย หรือราคาขายเฉลี่ย
ใน data frame แต่ละแถวแทนจุดหนึ่งบนขอบเขตของ ward โดยตัวแปร lon และ lat ระบุตำแหน่ง และ ward ระบุว่าจุดนั้นอยู่ใน ward ใด แต่แล้ว group และ order ล่ะ มีความหมายว่าอะไร?
ยังจำสองเรื่องยุ่งยากเกี่ยวกับรูปหลายเหลี่ยมได้ไหม? พื้นที่หนึ่งอาจอธิบายด้วยรูปหลายเหลี่ยมมากกว่าหนึ่งรูป และลำดับของจุดก็มีความสำคัญ group คือตัวระบุสำหรับรูปหลายเหลี่ยมแต่ละรูป แต่ ward หนึ่งอาจประกอบด้วยรูปหลายเหลี่ยมมากกว่าหนึ่งรูป ดังนั้นจึงอาจเห็นค่า group หลายค่าสำหรับ ward เดียวกัน ส่วน order ระบุลำดับที่ควรวาดจุดเพื่อให้ได้รูปร่างที่ถูกต้อง
ใน ggplot2 รูปหลายเหลี่ยมวาดด้วย geom_polygon() แต่ละแถวของข้อมูลคือจุดหนึ่งบนขอบเขต และจุดเหล่านั้นจะถูกเชื่อมต่อตามลำดับที่ปรากฏใน data frame โดยใช้ aesthetic x และ y ระบุตำแหน่ง และใช้ aesthetic group ระบุว่าจุดใดอยู่ในรูปหลายเหลี่ยมเดียวกัน
เรื่องนี้อาจซับซ้อนนิดหน่อย ดังนั้นก่อนที่จะสร้างพล็อตที่ต้องการ มาลองสำรวจดูก่อน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a point layer with color mapped to ward
ggplot(ward_sales, aes(lon, lat))