1. 学ぶ
  2. /
  3. コース
  4. /
  5. R で地理空間データを可視化する

Connected

演習

階級区分図(コロプレスマップ)

多角形の描画が分かったところで、今度はその多角形を地図上に重ねてみましょう。ggplot() の呼び出しを ggmap() に置き換え、元の ggplot() の呼び出しは base_layer() 引数に移動します。あとは通常どおり多角形レイヤーを追加します。

ggmap(corvallis_map_bw,
      base_layer = ggplot(ward_sales,
                          aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))

まずはコンソールで試してみてください。

あれ、うまく見えません。Ward 1、3、8 の境界がギザギザでおかしいですね。何が起きているのでしょうか。区の境界の一部が地図の範囲外にはみ出しているのが原因です。ggmap() のデフォルト設定では、地図の外側にあるデータはプロット前に切り落とされます。そのため一部の多角形の境界点が欠け、残った点だけで結ばれてしまい、形が崩れて見えます。

心配いりません。解決策があります。ggmap() にはこの挙動を制御する引数があります。extent = "normal" と maprange = FALSE を指定すると、プロットの境界が地図の範囲ではなくデータの範囲に基づくようになり、切り落としを防げます。

指示1 / 3

undefined XP
  • 1
    • 多角形が切れてしまう問題を直すために ggmap() の呼び出しを更新します。
      • extent を "normal"、maprange を FALSE に設定します。
  • 2
    • プロットを更新し、多角形の塗り(fill)を ward から num_sales に入れ替えます。
  • 3
    • さらにプロットを更新し、fill を avg_price にマッピングします。また、地図が透けて見えるように、geom_polygon() の呼び出しで alpha を 0.8 に設定します。