1 目的

国勢調査の小地域(町丁・字等別,ポリゴン)に人口及び人口密度を示す.応用例として,小地域を行政区域(ポリゴン)にまとめ,人口密度を示す.

ライブラリ:sftidyverse

library(sf)
library(tidyverse)

2 小地域の人口の可視化

シェープファイルのダウンロード

  • 統計地理情報システム > 境界データダウンロード > 小地域 > 国勢調査 > 2015年 > 小地域(町丁・字等別)(JGD2000) > 世界測地系緯度経度・Shapefile > 22000 静岡県全域

    • ダウンロードしたZIPファイルは同じフォルダ(ディレクトリ)に納め,ZIPファイルを選択 > 右クリック > すべて展開 > 展開先の選択とファイルの選択 > 展開を実行する.展開後は最初にダウンロードしたZIPファイルを削除.
    • read_sf:データ読込.Shizuoka_map2と名付ける.

小地域の可視化

Shizuoka_map2<-read_sf("A002005212015DDSWC22/h27ka22.shp") 

#小地域の可視化
ggplot()+
  geom_sf(data=Shizuoka_map2, fill="white") 

参考

小地域のポリゴンは行政区域のポリゴンに比べて小さい.また,海上にもポリゴン(水面調査区)が存在する(静岡県は目立たないが,例えば神奈川県や富山県は目立つ).このことを確認するために,国土数値情報ダウンロードサービスから得られる静岡県の行政区域(ポリゴン)と比較する.なお,行政区域の青で囲まれている部分は静岡市,緑は浜松市.

小地域の人口の可視化

今回ダウンロードしたデータ(上でShizuoka_map2と命名)には,小地域の人口(人,JINKO),面積(㎡,AREA)の情報も含まれる.1その他に,世帯数(SETAI)の情報も含まれる.

  • aes(fill):示したい変数(数値データ)を指定.ここではJINKOを指定.
ggplot()+
  geom_sf(data=Shizuoka_map2, aes(fill=JINKO))+
  scale_fill_distiller(palette="YlGnBu",
                       direction=1)+
  labs(fill="人")+
  ggtitle("小地域人口(2015年)")+
  theme_bw()

注意

人口を面積(AREA)で割ることにより,人口密度を作成することができる.しかし,人口密度の大きな小地域は面積が小さい場合が多く,このレベルの地図に示す場合は目立たない.

3 応用例

3.1 行政区域の人口密度の可視化

小地域を行政区域にまとめて,人口密度を可視化.

水面調査区

  • 国勢調査の調査区:分類コード(HCODE)で一般調査区(町丁・字等,8101)と水面調査区(水域で水上生活者のいる 区域,8154)に分類.そのほか,特別調査区が存在.
    • ここでは,パイプ演算子(%>%)を利用し,2Shizuokamap_2の一般調査区(8101)だけを残し(filter(HCODE==8101)),再びShizuokamap_2と名付ける.
#一般調査区の抽出
Shizuoka_map2 %>% 
  filter(HCODE==8101) ->
  Shizuoka_map2

現在のままだと,小地域+人口のまま.これを行政区域+人口密度に変更し,可視化.

  • 行政区域(CITY)をクループ(group_by())にする.
  • 次にsummrize()に渡し,括弧内を空欄にすると小地域が行政区域に単位でまとまる.
    • ただし,行政区域の人口密度を求めるため,summrize()の括弧内を空欄にせず,計算式を示す.
    • 小地域の人口を足し上げ(sum(JINKO)),行政区域の人口に変更し,小地域の面積を足し上げ(sum=(AREA)),行政区域の面積にする.行政区域の総人口をPopulation,行政区域の総面積をAreatotalと名付ける.
    • 行政区域を人口密度(Density)で示す.人/㎡はあまり使われないため,人/㎢に変更,Areatotalを100万(1000000)で割る(=人/㎡に100万を掛ける).
    • 再びShizuokamap_2と名付ける.
Shizuoka_map2 %>%
  group_by(CITY) %>%
  summarise(Population=sum(JINKO),
            Areatotal=sum(AREA),
            Density=Population/Areatotal*1000000) ->
  Shizuoka_map2

#可視化
ggplot()+
  geom_sf(data=Shizuoka_map2, 
          aes(fill=Density))+
  scale_fill_distiller(palette="YlGnBu",
                       direction=1)+
  labs(fill="人/㎢")+
  ggtitle("行政区域人口密度(2015年)")+
  theme_bw()

Rによる地理空間データの可視化


  1. 統計地理情報システムには境界データのほか統計データが用意されている.国勢調査の小地域人口は統計データ(人口総数)にも含まれているが,この数値と今回使用した小地域人口(JINKO)が一致しない場合がある.詳細は小地域データによる人口変化の可視化を参照.↩︎

  2. パイプ演算子(パイプ)を挟むことにより,パイプの左あるデータや結果を右にある式の1つ目の引数として渡せる.左から右へ計算を次々に加えられる便利な道具として広く利用されている.x %>% f()f(x)と,x %>% f(y)f(x, y)と同じ結果を得る.↩︎