sf パッケージでGIS
ここでは例として、
で配布されているシェイプファイルとデータファイルから、単純なコロプレスマップの描画を行ってみる。
まず、次の zip ファイルをダウンロード、解凍する。
- 小選挙区ポリゴン(shape形式)(2017年6月9日アップロード、6月10日14時修正:川崎市麻生区の飛び地を表示)
とりあえず、sf パッケージの st_read 関数で、これを読み込み、「白地図」を描いてみよう。
library(ggplot2)
jp <- sf::st_read("senkyoku289polygon.shp")
ggplot() + geom_sf(data = jp, size = 0.1)
続いて、国勢調査データをダウンロードし、解凍。
なお、Linux OS などの utf8 な環境ではファイル名が文字化けするので、unzip にオプションを付ける。
unzip -O sjis H27kokucho_senkyoku289.zip
R に戻り、以下のようにして、男女別人口及び世帯数のデータファイルを読み込む。
pop <- read.csv(
"289選挙区_H27_02_男女別人口及び世帯数.csv",
fileEncoding = "Shift_JIS")
上で読み込んだ2つのオブジェクトをマージする。
このとき、小選挙区コード(“kucode”と“KuCode”)が一致するようにデータの並びを整える。
library(dplyr)
jp2 <- left_join(jp, pop, by = c("kucode" = "KuCode"))
最後に、再び地図をプロット。
最初の「白地図」に各選挙区の人口総数による明暗を付加する。
ggplot(jp2, aes(fill=総数)) +
geom_sf(size=0.1) +
scale_fill_distiller(direction=1)