NipponMapに他のウェブサイトからダウンロードした都道府県別データを加え,可視化.今回は65歳以上人口割合を表現する.また,シェープファイルを使わずに都道府県データ(65歳以上人口割合)を表現する方法を紹介する.
パッケージ:sf,tidyverse,Nipponmap
シェープファイル
作業フォルダ(ディレクトリ)にjpn.shpなどが含まれるshapesと示されるフォルダがあることを前提とする.
Nippon_mapとし,read_sf()でデータを読込.
Nippon_map<-以降のコマンドをread_sf(system.file("shapes/jpn.shp"), package="NipponMap")にしても可能.この場合,移す作業は必要ない.crs="WGS84"は削除しても目的は達成可能.crs(Coordinate
ReferenceSystem,座標参照系)を1984年に定められた世界測地系(World
Geodetic System)に投影を意味.ダウンロード
0000_全国を選択して,「地域を削除」をクリック.これで「選択中地域」欄は都道府県(47地域)になる.「確定」をクリック.
指標データ > 分野:#A 人口・世帯#A03503 65歳以上人口割合(%) > 確定
データの読込
read.csv():CSV形式のデータの読込.オブジェクト名をOlder_popとする.sep=",":データがカンマで区切られていることを指示.CSV形式のデータをメモ帳やEXCELで開くと,データがカンマで区切られていることがわかる.skip=1:1行目を削除.CSV形式のデータをメモ帳やEXCELで開くと,最初の2行に列名(項目名)が記されている.ここでは,1行目は利用しない.header=TRUE:1行目(削除前の2行目)が列名であることを指示.fileEncoding:文字化けを防止.#65歳以上高齢者人口割合データの読込
Older_pop <- read.csv("FEI_PREF_220523124500.csv",
sep=",", skip=1,
header=TRUE,
fileEncoding="CP932") データの中身
パイプ演算子(%>%)の活用.1
head()を用いて上から6行までのデータの中身を確認.データの加工
rename()を用いてOlder_popの3列目(地域.コード)と6列目(X.A03503_65歳以上人口割合…)の列名変更.SP_ID)を用いて,地図データ(Nippon_map)と65歳以上高齢者人口割合データ(Older_pop)の結合準備.
mutate():データの列名の変更や追加を指示.Older_popのSP_IDは例えば北海道が1000になっている.一方,Nippon_mapでは北海道は1である.そこで,Nippon_mapの表記にそろえるためOlder_popのSP_IDを1000で割る.Nippon_mapのSP_IDは<chr>(character:文字列),Older_popのSP_IDは<int>(integer:数値)のため結合できない.Older_popのSP_IDを文字列に変換.Older_popとする.#列名の変更
Older_pop %>%
rename(SP_ID=3,
Older_pop_rate=6) ->
Older_pop
#データ結合のための準備
Older_pop %>%
mutate(SP_ID=SP_ID/1000) %>%
mutate(SP_ID=as.character(SP_ID)) ->
Older_popデータの結合
シェープファイルである地図データ(Nippon_map)と65歳以上高齢者人口割合データ(Older_pop)を結合.
Nippon_map)と65歳以上高齢者人口割合データ(Older_pop)をSP_IDで結合(left_join)し,Older_mapと名付ける.地図の下にNipponMapおよび都道府県・市区町村のすがたを利用したことを記す(caption).
色分けはviridisを利用.
"option="G"はoption="mako"に等しい.ggplot()+
geom_sf(data=Older_map,
aes(fill=Older_pop_rate))+
scale_fill_viridis_c(option="G", direction=-1)+
labs(fill="%",
caption="NipponMap
出典:総務省都道府県・市区町村のすがた")+
ggtitle("65歳以上人口割合(2019年度)")+
theme_bw()Rによる地理空間データの可視化