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))