ตัวอย่างการแบ่งช่วงสเกล
กลับมาดูกราฟสัดส่วนประชากรที่มีอายุระหว่าง 18 ถึง 24 ปีอีกครั้ง:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
กราฟที่ได้มีปัญหาเนื่องจากสัดส่วนส่วนใหญ่ตกอยู่ในระดับสีต่ำสุด ทำให้กราฟแสดงรายละเอียดได้น้อยมาก วิธีหนึ่งในการแก้ปัญหานี้คือ แทนที่จะแบ่งช่วงของตัวแปรออกเป็นถังขนาดเท่ากัน ให้แบ่งเป็นหมวดหมู่ที่เหมาะสมกว่าแทน
เริ่มต้นด้วยการทำซ้ำค่าเริ่มต้นของ tmap ซึ่งแบ่งเป็น 5 หมวดหมู่โดยใช้การแบ่งแบบ "pretty" จากนั้นลองใช้วิธีอื่น ๆ ในการแบ่งตัวแปรออกเป็นช่วง การเรียกใช้ฟังก์ชัน classIntervals() โดยตรงจะให้ผลตอบกลับอย่างรวดเร็วว่าจุดแบ่งจะอยู่ที่ใด แต่วิธีที่ดีที่สุดในการทดลองใช้ชุดจุดแบ่งคือการพล็อตกราฟดู
(เพิ่มเติม: อีกวิธีในการแก้ปัญหาประเภทนี้คือการหาการแปลงตัวแปรที่เหมาะสม เพื่อให้ถังขนาดเท่ากันบนสเกลที่แปลงแล้วมีประโยชน์มากขึ้น)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
คำแนะนำการฝึกหัด
- เรียก
classIntervals()บนvalues(prop_by_age[["age_18_24"]])โดยกำหนดn = 5และstyle = "pretty"สังเกตปัญหาที่เกิดขึ้น: เซลล์กริด 130,770 เซลล์ตกอยู่ในถังแรก - เรียก
classIntervals()อีกครั้งเหมือนเดิม แต่เปลี่ยนเป็นstyle = "quantile" - ใช้ถังขนาดเท่ากันโดยส่งอาร์กิวเมนต์
nและstyleเข้าไปในเลเยอร์tm_raster()ของกราฟ - สร้างฮิสโตแกรมของ
values(prop_by_age[["age_18_24"]])ควรกำหนดจุดแบ่งที่ตำแหน่งใด? - กำหนดจุดแบ่งเองใน
tm_raster()โดยระบุbreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1) - บันทึกกราฟสุดท้ายเป็น leaflet plot โดยใช้
tmap_save()พร้อมกำหนดfilenameเป็น"prop_18-24.html"
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
mag <- viridisLite::magma(7)
library(classInt)
# Create 5 "pretty" breaks with classIntervals()
# Create 5 "quantile" breaks with classIntervals()
# Use 5 "quantile" breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag) +
tm_legend(position = c("right", "bottom"))
# Create histogram of proportions
# Use fixed breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag,
style = "fixed")
# Save your plot to "prop_18-24.html"