การเพิ่มป้ายชื่อย่านที่พักอาศัย
ป้ายชื่อย่านที่พักอาศัยมีความยาวและขนาดใหญ่จนบดบังข้อมูลในแผนที่ ลองดูที่ manhat_hoods$NTAName จะเห็นว่าบางย่านเป็นการรวมกันของหลายสถานที่ วิธีหนึ่งที่ทำให้ชื่อกระชับขึ้นคือการแบ่งชื่อออกเป็นหลายบรรทัด ตัวอย่างเช่น เปลี่ยนจาก
Midtown-Midtown South
ให้เป็น
Midtown /
Midtown
South
ในการทำเช่นนี้ สามารถใช้ฟังก์ชัน gsub() ใน base R ได้ โดย gsub() จะแทนที่อาร์กิวเมนต์แรกด้วยอาร์กิวเมนต์ที่สองในสตริงที่ระบุในอาร์กิวเมนต์ที่สาม ตัวอย่างเช่น gsub("a", "A", x) จะแทนที่ "a" ทุกตัวใน x ด้วย "A"
นอกจากนี้ยังสามารถปรับขนาดตัวอักษรให้เล็กลงเพื่อลดผลกระทบของชื่อย่านได้อีกด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
คำแนะนำการฝึกหัด
- สร้างคอลัมน์
nameใหม่ในmanhat_hoodsโดยใช้gsub()เพื่อแทนที่ช่องว่างทั้งหมด (" ") ด้วยการขึ้นบรรทัดใหม่ ("\n") ในmanhat_hoods$NTAName - อัปเดต
nameในmanhat_hoodsโดยใช้gsub()เพื่อแทนที่เครื่องหมายขีด ("-") ทั้งหมดด้วยเครื่องหมาย slash ตามด้วยการขึ้นบรรทัดใหม่ ("/\n") ในmanhat_hoods$name - แก้ไขพล็อตให้กำหนด
textเป็น"name"และตั้งค่าsizeเป็น 0.5
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
library(tmap)
# gsub() to replace " " with "\n"
# gsub() to replace "-" with "/\n"
# Edit to map text to name, set size to 0.5
tm_shape(nyc_tracts_merge) +
tm_fill(col = "estimate") +
tm_shape(water) +
tm_fill(col = "grey90") +
tm_shape(manhat_hoods) +
tm_borders() +
tm_text(text = "NTAName")