目的

世界銀行のオープンデータサイト(World Bank Open Data)には世界各国の経済,気候変動貧困,健康,教育,ジェンダーなどに関する約8000の開発指標が無料公開されている.ここでは,Natural Earthの世界地図に世界銀行の指標(平均寿命と出生率)を表現する.

  • 世界銀行のオープンデータを扱うパッケージが用意されているため,それを利用する.
    • パッケージをインストールする場合はinstall.packages("WDI")

ライブラリ:sftidyversernaturalearthWDI

library(sf)
library(tidyverse)

#Natural Earth 
library(rnaturalearth)
#WDI
library(WDI)

平均寿命

世界地図の読込

詳細はNatural Earthの地理空間データの可視化参照.

  • ne_countries()で読込.
    • 地物(オブジェクト)とその属性をもつデータであるためsfクラスを指定.
    • 地図の解像度(scale)はmiddleを指示.
    • World_mapと名付ける.
    • 座標参照系(CRS):EPSG:4326:WGS84.
World_map<-
  ne_countries(scale="medium",
               returnclass="sf")

指標の選択とデータフレームの作成

Rパッケージを利用しているため,指標そのものをダウンロードする必要はない.ただし,指標名が分からないと,指標を可視できない.そこで,次のように世界銀行のオープンデータサイトから指標名を探す.

  • World Bank Open Data > Indicators(Browse by Country or IndicatorのIndicatorをクリック) > (例えば,スクロールして指標を探す)Life expectancy at birth, total (years)
  • データフレームを作成する.Life_expectancyと名付ける.
    • WDI()を利用.指標(indicator)としてSP.DYN.LE00.INを利用することを指示.
    • extra=TRUEのオプションを付けることで,その他の情報もデータフレームに加わる.オプションを付けない場合,最小限の情報.
    • 指標は時系列に整備されている.ここでは,2020のみを使用することにする.そのために,最初(start)と終わり(end)の西暦を指示.
    • 指標名を分かり易く変更.
#使用する指標
Life_expectancy<-
  WDI(indicator="SP.DYN.LE00.IN", extra=TRUE,
      start=2020, end=2020)

#列名の変更
Life_expectancy %>% 
  rename(life_ex=SP.DYN.LE00.IN) ->
  Life_expectancy

データの中身

#最初の6行
Life_expectancy %>%
  head()

データの結合

世界地図(World_map)と平均寿命データ(Life_expectancy)を結合.

  • 英字3桁の国名コードを利用して結合(left_join())し,Life_ex_mapと名付ける.
    • 3桁の国名コードはWorld_mapではLife_expectancyではiso_a3
Life_ex_map<-
  left_join(World_map, Life_expectancy,
            by=c("iso_a3"="iso3c"))

完成図形

完成図からは南極大陸(ATA)を削除する(好み).

#南極大陸削除
Life_ex_map %>% 
  filter(iso_a3!="ATA") ->
  Life_ex_map 
  • 色分けは平均寿命であることを指示(aes(fill=life_ex)).
  • 各国の枠(color)は白(white),線(size)の太さは0.001に指示.
  • 凡例を図の下に移動(legend.position="bottom").
  • 出典を地図の隅に示す(caption).
  • ロビンソン図法(ESRI:54030).
ggplot()+
  geom_sf(data=Life_ex_map, aes(fill=life_ex), 
          color="white", size=0.001)+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="歳",
       caption="出典:Natural Earth, The World Bank")+
  ggtitle("平均寿命(2020年)")+
  coord_sf(crs=st_crs("ESRI:54030"))+
  theme_bw()+
  theme(legend.position="bottom")

出生率

同様にして,出生率を可視化.

  • 出生率の指標はFertility rate, total (births per woman)で指標名はSP.DYN.TFRT.IN
    • ここでも2020年を利用.
    • コードは繰り返しのため省略.

応用

南アメリカ州の平均寿命

南アメリカ州の選抜

世界地図から南アメリカ州に属する国を切り抜く(filter()).

  • 大陸の識別は上の表でcontinentの列.
    • SA_Life_ex_mapと名付ける.
Life_ex_map %>% 
  filter(continent=="South America") ->
  SA_Life_ex_map

南アメリカ州地図

国名(英字2桁の国名コードiso_a2)を記した地図を作成する.

  • コードは省略.

完成図形

ggplot()+
  geom_sf(data=SA_Life_ex_map, aes(fill=life_ex),
          color="white")+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="歳",
       caption="出典:Natural Earth, The World Bank")+
  ggtitle("南アメリカ州の平均寿命(2020年)")+
  theme_bw()

南アメリカ州の出生率

コードは繰り返しのため省略.

完成図形

参考ウェブサイト

Introduction to mapping in R(アクセス日:2022-08-15)

How to Download World Bank Data in R-Studio(アクセス日:2022-08-15)←YouTube動画

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