始める無料で始める

すべてを組み合わせる

Corvallis の地図は用意できました。では、家の売買地点をこの上に重ねるにはどうすればよいでしょうか?

ggplot() と同様に、ggmap() の呼び出しにもデータのレイヤーを追加できます(例: + geom_point())。ただし重要な点として、ggmap() は地図をデフォルトのデータセットにし、デフォルトの美的属性(aesthetics)も設定します。

つまり、地図以外のデータ(例: sales)からレイヤーを追加したい場合は、該当する geom で mappingdata の両方の引数を明示的に指定する必要があります。

どう書けばよいでしょうか? これまでに、売買データの基本的なプロットは次のように作れると学びました。

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)
コードを編集して実行