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

กำหนด Palette แบบกำหนดเองใน tmap

ต่างจาก ggplot2 ที่การกำหนดสเกลสีแบบกำหนดเองจะใช้คำสั่ง scale_ แยกต่างหาก ใน tmap นั้น สีจะถูกระบุโดยตรงในเลเยอร์ที่ใช้แมปข้อมูล ตัวอย่างเช่น การพล็อตตัวแปร age_18_24 จาก prop_by_age:

tm_shape(prop_by_age) +
  tm_raster(col = "age_18_24") 

เนื่องจากสีถูกแมปในคำสั่ง tm_raster() การระบุ palette จึงเกิดขึ้นในคำสั่งเดียวกัน โดยระบุเวกเตอร์ของสีในอาร์กิวเมนต์ palette นี่เป็นอีกเหตุผลหนึ่งที่ควรเรียนรู้วิธีสร้างเวกเตอร์สี แม้ว่าแต่ละแพ็กเกจจะมีทางลัดในการระบุ palette จากแพ็กเกจสีที่แตกต่างกัน แต่โดยทั่วไปทุกแพ็กเกจจะรองรับการส่งเวกเตอร์สีเข้าไปได้เสมอ

มาลองใช้ palette จากแบบฝึกหัดที่แล้วกับพล็อตนี้กัน

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

การสร้างภาพข้อมูลภูมิสารสนเทศใน R

ดูคอร์ส

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

  • ในพล็อตแรก ให้ใช้ palette blups แทนค่าเริ่มต้น
  • ในพล็อตที่สอง ให้ใช้ palette vir แทนค่าเริ่มต้น
  • ในพล็อตที่สาม ให้ใช้ palette rev(mag) แทนค่าเริ่มต้น rev() เป็นฟังก์ชันที่ใช้กลับลำดับของเวกเตอร์ ดังนั้นจึงใช้สีชุดเดิมแต่เรียงในลำดับตรงกันข้าม

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

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

# Generate palettes from last time
library(RColorBrewer)
blups <- brewer.pal(9, "BuPu")

library(viridisLite)
vir <- viridis(9)
mag <- magma(9)

# Use the blups palette
tm_shape(prop_by_age) +
  tm_raster("age_18_24") +
  tm_legend(position = c("right", "bottom"))

# Use the vir palette
tm_shape(prop_by_age) +
  tm_raster("age_18_24") +
  tm_legend(position = c("right", "bottom"))

# Use the mag palette but reverse the order
tm_shape(prop_by_age) +
  tm_raster("age_18_24") +
  tm_legend(position = c("right", "bottom"))
แก้ไขและรันโค้ด