รวมทุกอย่างเข้าด้วยกัน
ตอนนี้เรามีแผนที่ Corvallis ที่สวยงามแล้ว แต่จะนำตำแหน่งของการขายบ้านมาแสดงทับบนแผนที่ได้อย่างไร?
เช่นเดียวกับ ggplot() คุณสามารถเพิ่ม layer ของข้อมูลต่อท้ายการเรียก ggmap() ได้ (เช่น + geom_point()) อย่างไรก็ตาม สิ่งสำคัญที่ต้องทราบคือ ggmap() จะกำหนดแผนที่เป็น dataset เริ่มต้น และยังกำหนด aesthetic mapping เริ่มต้นด้วย
นั่นหมายความว่า หากต้องการเพิ่ม layer จากแหล่งข้อมูลอื่นที่ไม่ใช่แผนที่ (เช่น sales) จะต้องระบุทั้งอาร์กิวเมนต์ mapping และ data ใน geom อย่างชัดเจน
หน้าตาของโค้ดเป็นอย่างไร? ลองดูวิธีสร้าง plot พื้นฐานของข้อมูล sales:
ggplot(sales, aes(lon, lat)) +
geom_point()
วิธีที่เทียบเท่ากันในการระบุ plot เดียวกันคือ:
ggplot() +
geom_point(aes(lon, lat), data = sales)
ที่นี่ เราระบุ data และ mapping ในการเรียก geom_point() แทนที่จะระบุใน ggplot() ข้อดีของการเขียนโค้ดแบบนี้คือสามารถสลับ ggplot() เป็นการเรียก ggmap() เพื่อให้มีแผนที่เป็นพื้นหลังของ plot ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างภาพข้อมูลภูมิสารสนเทศใน R
คำแนะนำการฝึกหัด
แพ็กเกจ ggmap ถูกโหลดให้แล้ว และ corvallis_map จากแบบฝึกหัดก่อนหน้าพร้อมใช้งานใน workspace ของคุณ
- ขั้นแรก ลองดู
head()ของข้อมูล sales แล้วสังเกตว่ามีคอลัมน์ใดบ้างที่ระบุตำแหน่งของบ้าน - สลับการเรียก
ggplot()เป็นการเรียกggmap()โดยใช้corvallis_map
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Look at head() of sales
# Swap out call to ggplot() with call to ggmap()
ggplot() +
geom_point(aes(lon, lat), data = sales)