1 目的

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

ライブラリ:sftidyverseNipponmap

  • NipponMapをインストールしていないない場合は#install.packages("NipponMap")#を削除し,インストール.
    • インストールは一度だけでよいため,その後このRコードは削除可能.
#install.packages("NipponMap")

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

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

シェープファイル

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

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

  • 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)に投影を意味.
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 POLYGON ((139.7707 42.3018,…
2 02 Aomori 1373339 Tohoku POLYGON ((140.8727 40.48187…
3 03 Iwate 1330147 Tohoku POLYGON ((140.7862 39.85982…
4 04 Miyagi 2348165 Tohoku POLYGON ((140.2802 38.01415…
5 05 Akita 1085997 Tohoku POLYGON ((140.7895 39.86026…
6 06 Yamagata 1168924 Tohoku POLYGON ((140.2802 38.01415…

人口分布の可視化

  • aes(fill):示したい変数(数値データ)を指定.ここではpopulationを指定.2
ggplot()+ 
  geom_sf(data=Nippon_map, aes(fill=population))

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

  • scale_fill_distiller():連続変数の色分けを指示する関数.ggplot2で用意されているカラーパレット(palette)を利用する.ここでは都道府県に埋める(aes内のfillに揃える)数値データの色を黄緑青(YlGnBu)に指示.3
  • 色の順番の初期設定(デフォルト)がdirection=-1のため,direction=1を用いて色の順番を逆にする.このRコードは必要なければ削除可能.その場合は初期設定の順番.
    • labs():凡例を「人」にするように指示.aes内のfill=populationを「人」に変更している.
      • captionに出典を記す.図の右下に表示される.
    • ggtilte():図のタイトルを指示する関数.
  • ggplot()は初期設定のままの場合,背面(枠内)は灰色,線(枠)は白で描写(theme_grey()).theme_bw()(black & white)を利用すると背面を白,線を黒に変更可能.
ggplot()+ 
  geom_sf(data=Nippon_map, aes(fill=population))+
  scale_fill_distiller(palette="YlGnBu", direction=1)+
  labs(fill="人",
       caption="出典:NipponMap")+
  ggtitle("都道府県別人口")+
  theme_bw()

参考

ggplot2で用意されている連続的に色が変わるカラーパレット(palette)は下記の通り.

  • Sequential palettes

  • Diverging palettes

  • Qualitative palettes

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


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

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

  3. エラー・メッセージがでたときは,カラーパレットをインストールすると解決するかもしれない.パッケージをインストールし(install.packages("RColorBrewer")),パッケージを呼び出し(library(RColorBrewer)),再度可視化(ggplot()を含めたRコード)を試みる.↩︎