すべてを組み合わせる
Corvallis の地図は用意できました。では、家の売買地点をこの上に重ねるにはどうすればよいでしょうか?
ggplot() と同様に、ggmap() の呼び出しにもデータのレイヤーを追加できます(例: + geom_point())。ただし重要な点として、ggmap() は地図をデフォルトのデータセットにし、デフォルトの美的属性(aesthetics)も設定します。
つまり、地図以外のデータ(例: sales)からレイヤーを追加したい場合は、該当する geom で mapping と data の両方の引数を明示的に指定する必要があります。
どう書けばよいでしょうか? これまでに、売買データの基本的なプロットは次のように作れると学びました。
ggplot(sales, aes(lon, lat)) +
geom_point()
同じプロットを等価な別の書き方で指定すると、次のようになります。
ggplot() +
geom_point(aes(lon, lat), data = sales)
ここでは、ggplot() ではなく geom_point() の呼び出しでデータとマッピングを指定しています。この書き方の利点は、ggplot() を ggmap() に置き換えるだけで、プロットの背景に地図を表示できることです。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
ggmap パッケージは読み込まれており、前の演習で作成した corvallis_map もワークスペースに用意されています。
- まず、sales データの
head()を確認しましょう。 住宅の位置を示す列がどれか分かりますか? 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)