始める無料で始める

ggplot2 の強みを活かす

ggmap() のプロットに geom_***() レイヤーを追加し、各レイヤーで明示的にデータとマッピングを指定できることを見てきましたが、このやり方には大きな欠点が2つあります。後続のレイヤーでも毎回データとマッピングを指定する必要があること、そしてファセットがまったく使えないことです。

幸い、ggmap() にはこの欠点を回避する方法があります。それが base_layer 引数です。base_layer には通常の ggplot() 呼び出しを渡せて、すべてのレイヤーに共通のデフォルトのデータとマッピングを指定できます。

たとえば、最初のプロットは次のとおりでした。

ggmap(corvallis_map) +
  geom_point(data = sales, aes(lon, lat))

これは次のようにも書けます。

ggmap(corvallis_map, 
    base_layer = ggplot(sales, aes(lon, lat))) +
  geom_point()

ggmap() の中の ggplot() 呼び出しへ、最初の geom_point() から aes(x, y)data を移動することで、通常の ggplot2 のやり方でファセットや追加レイヤーを使えるようになります。

それでは試してみましょう。

この演習はコースの一部です

R で地理空間データを可視化する

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Use base_layer argument to ggmap() to specify data and x, y mappings
ggmap(corvallis_map_bw, ___) +
  geom_point(data = sales, aes(lon, lat, color = year_built))
コードを編集して実行