整合在一起
你現在已經有一張漂亮的 Corvallis 地圖了,但要怎麼把房屋交易的位置疊加上去呢?
和 ggplot() 類似,你可以在 ggmap() 呼叫中加入不同的資料圖層(例如 + geom_point())。不過要特別注意,ggmap() 會將地圖設為預設的資料集,並同時設定預設的美術對應(aesthetic mappings)。
這表示,如果你想加入不是出自地圖本身的圖層(例如 sales),就需要在該 geom 中明確指定 mapping 和 data 這兩個引數。
這會長什麼樣子呢?你已經看過如何繪製銷售資料的基本散佈圖:
ggplot(sales, aes(lon, lat)) +
geom_point()
另一種等價的寫法是:
ggplot() +
geom_point(aes(lon, lat), data = sales)
在這裡,我們把資料與對應指定在 geom_point(),而不是在 ggplot()。這種寫法的好處是,你可以把 ggplot() 換成 ggmap() 的呼叫,就能在圖的背景放上一張地圖。
本練習屬於課程
在 R 視覺化地理空間資料
練習說明
ggmap 套件已為你載入,且上一個練習中的 corvallis_map 已可在你的工作環境中使用。
- 先用
head()看一下 sales 資料。你能看出哪些欄位是房屋的位置嗎? - 將呼叫
ggplot()的地方改成以corvallis_map呼叫ggmap()。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Look at head() of sales
# Swap out call to ggplot() with call to ggmap()
ggplot() +
geom_point(aes(lon, lat), data = sales)