sf パッケージでGIS

ここでは例として、

で配布されているシェイプファイルとデータファイルから、単純なコロプレスマップの描画を行ってみる。

 

まず、次の zip ファイルをダウンロード、解凍する。

 

とりあえず、sf パッケージの st_read 関数で、これを読み込み、「白地図」を描いてみよう。

library(ggplot2)
jp <- sf::st_read("senkyoku289polygon.shp")
ggplot() + geom_sf(data = jp, size = 0.1)

f:id:fusion0202:20190521115309p:plain

 

 続いて、国勢調査データをダウンロードし、解凍。

なお、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)

f:id:fusion0202:20190521122019p:plain