千葉県市区町村の高齢化率

sf パッケージを用いたコロプレス・マップのプロット。

今回は千葉県市区町村の高齢化率を例にとる。

まずは、千葉県行政区分のシェイプファイルが必要だが、これは ESRI ジャパンが無償配布している「全国市区町村界データ」から、千葉県の部分を取り出して利用する。

入手先は、

ダウンロードした zip ファイルを解凍、Rに読み込んで、千葉県のデータのみを抽出する。なお、末尾(60番目)のオブジェクトは「所属未定地」なので削除しておく。

library(dplyr)

jp <- sf::st_read("japan_ver81.shp")
jp %>% filter(KEN %in% "千葉県") -> chiba
chiba <- chiba[-60,]

 

次に、人口の最新データを千葉県の公式サイトから入手する。

ここにある「第1表 男女別、年齢(3区分)別人口-県・市区町村・11地域(エクセル:19KB)」に65歳以上の人口及び、その割合が市区町村別に掲載されている。

このエクセル・ファイルをRに直接読み込んでもいいのだが、処理が煩雑になるので、必要な部分だけ CSVファイルに変換したものを作成して gist にアップロードしてある。

これをダウンロードしRに読み込んで、シェイプファイルとマージする。

pop <- read.csv("chiba_pop_20180401.csv")
chiba2 <- left_join(chiba, pop, by = c("SIKUCHOSON" = "sikuchoson"))

 

 もとの人口データで、コラム名「r65」が高齢化率を表している。
これを cut_interval 関数で5%刻みの階級に分類して、それぞれ異なる色で塗り分ける。

library(ggplot2)
library(ggthemes)

ggplot() +
geom_sf(data = chiba2,
                aes(fill = cut_interval(r65, length = 5)),
                alpha = 0.8, colour = 'grey20', size = 0.1) +
scale_fill_brewer(palette = "YlOrRd",
                             name = "Residents of \nage 65 and older(%)") +
theme_bw() +
theme(axis.line = element_blank(),
            axis.text.x = element_blank(),
           axis.text.y = element_blank(),
           axis.ticks = element_blank(),
           panel.border = element_blank()) +
theme(legend.position = c(0.95, 0.22))

f:id:fusion0202:20190615193809p:plain