1 目的

NipponMapを活用して都道府県別データを日本地図に可視化.今回は人口を表現する.

パッケージ:sftidyverseNipponmap

  • インストールしていないないパッケージは”Packages … required but it is not installed. Install Don’t Show Again” と質問されるので,Installを選択.「…」はインストールしたいパッケージ名.
    • パッケージ:ある機能(データを操作する,図を描く)を実現するための関数群をまとめたもの.インストールして利用.
    • 仮に質問がない場合は,#install.packages("...")#を削除し,インストール.「…」はインストールしたいパッケージ名.
    • インストールは一度だけでよいため,その後このRコードは削除可能.
  • ライブラリ:パッケージがインストールされるフォルダ(ディレクトリ)のこと.library(...)でパッケージの読込.
#install.packages("...")

library(sf)
library(tidyverse)
library(NipponMap)

2 データの読込と日本地図の可視化

シェープファイル

NipponMapがインストールできれば,シェープファイル(shapes)がユーザライブラリにある.1このファイルを現在作業しているフォルダ(ディレクトリ)に移す.

  • R > win-library > x.y (Rのバーション) > NipponMap 

  • shapesと示されるフォルダがあるので,これをコピーし, 現在作業しているフォルダにペーストする.

  • オブジェクトNippon_mapと名付け,read_sf()でデータを読込.

    • オブジェクト:データを表現するための基本構造.ベクトル,行列,データフレーム,リスト,ファクターなどの種類がある.Rではオブジェクトにデータを格納.  
    • シェープファイルを現在のフォルダに移すのが面倒だと思う場合は,Nippon_map<-以降のコマンドをread_sf(system.file("shapes/jpn.shp"), package="NipponMap")にしても可能.この場合,移す作業は必要ない.
    • crs="WGS84"は削除しても目的は達成可能.crs(Coordinate Reference System,座標参照系)を1984年に定められた世界測地系(World Geodetic System)に投影を意味.
Nippon_map<-read_sf("shapes/jpn.shp",
                    crs="WGS84")

日本地図の可視化

  • ggplot()を用いて都道府県の境界が示された日本地図を可視化.
  • ggplot()を用いた可視化に関しては,括弧内の示し方が何通りかあるが,このチュートリアルではできるだけ次のように統一.
    • ggplot():括弧内記入なし.
    • geom_sf():シェープファイルに含まれる図形(地物)・属性情報を可視化する関数.data=Nippon_mapをデータとして利用するように指示.
ggplot()+ 
  geom_sf(data=Nippon_map)

3 都道府県別人口の可視化

データの中身

  • head()を用いるとNippon_mapの上から6行目までの中身が確認可能.
    • 人口(population)データが4列目に含まれていることがわかる.
head(Nippon_map)
SP_ID jiscode name population region geometry
1 01 Hokkaido 5506419 Hokkaido MULTIPOLYGON (((139.7707 42…
2 02 Aomori 1373339 Tohoku MULTIPOLYGON (((140.8727 40…
3 03 Iwate 1330147 Tohoku MULTIPOLYGON (((140.7862 39…
4 04 Miyagi 2348165 Tohoku MULTIPOLYGON (((140.2802 38…
5 05 Akita 1085997 Tohoku MULTIPOLYGON (((140.7895 39…
6 06 Yamagata 1168924 Tohoku MULTIPOLYGON (((140.2802 38…

人口分布の可視化

  • aes(fill=...):示したい変数「…」(数値データ)を指定.ここではpopulationを指定.fillは枠内の色.2
    • fillcolorにすると,枠線の色.枠内と枠線の色を両方指示することも可能.
ggplot()+ 
  geom_sf(data=Nippon_map, aes(fill=population))

最後に数値データの色を変更し,地図のタイトルをつけ,凡例を変更して,完成地図を示す.

  • 色分けはviridisを利用.3viridisは視覚的に優れており,バリアフリー,白黒印刷にも対応可能.
    • scale_fill_viridis_c():連続変数(aes内のfill)の色分けを指示する関数.cは連続変数
    • 数値データの色をoption="G"とする.option="mako"に等しい.
    • direction=-1を用いて色の順番を逆にする.
    • labs():凡例を「人」にするように指示.aes内のfill=populationを「人」に変更している.
      • captionに出典を記す.図の右下に表示される.
    • ggtilte():図のタイトルを指示する関数.
  • ggplot()は初期設定のままの場合,背面(枠内)は灰色,線(枠)は白で描写(theme_grey()).theme_bw()(black & white)を利用すると背面を白,線を黒に変更可能.
ggplot()+ 
  geom_sf(data=Nippon_map, aes(fill=population))+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="人",
       caption="出典:NipponMap")+
  ggtitle("都道府県別人口")+
  theme_bw()

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


  1. シェープファイルは図形(地物)・属性情報を含む複数のファイルから構成される.拡張子は.shp.shx.dbfなど.Rコードには主に.shpが出現するが,ファイルから他の拡張子(.shx.dbfなど)をもつファイルを削除すると,図形・属性情報を表現できなくなる.↩︎

  2. このように,数値データに応じて色塗りされた地図をコロプレス図(階級区分図)とよぶ.↩︎

  3. 必要に応じてパッケージをインストール(install.packages("viridis")し,library(viridis)で読込.↩︎