1 目的

東京都23区内の情報通信産業の集積状況を可視化.また応用として,OpenStreetMapの地図タイル画像を背景に用いる.

ライブラリ:sftidyverse

library(sf)
library(tidyverse)

2 事業所数の可視化

行政区域のダウンロード

  • 国土数値情報ダウンロードサービス > 行政区域(ポリゴン) > 東京都 > 令和3年
    • ダウンロードしたZIPファイルは同じフォルダー(ディレクトリ)に納め,ZIPファイルを選択 > 右クリック > すべて展開 > 展開先の選択とファイルの選択 > 展開を実行する.展開後は最初にダウンロードしたZIPファイルを削除.
    • read_sf:データ読込.行政区域をTokyo_mapと名付ける.
    • パイプ演算子(%>%)を使い,23区を抜き出し,t23-wards_mapと名付ける.
#東京都の地図
Tokyo_map <- 
  read_sf("N03-20210101_13_GML/N03-20210101_13_GML/N03-21_13_210101.shp")

#世界測地系を指定
Tokyo_map <- 
  Tokyo_map %>% 
  st_transform("WGS84")

#23区の抽出
Tokyo_map %>%
  filter(N03_007>="13101" & 
           N03_007<="13123") ->
  t23_wards_map

統計データダウンロード

  • 統計地理情報システム > 統計データダウンロード > 経済センサス-活動調査 > 2016年 > 4次メッシュ(500mメッシュ) > 産業(大分類)別事業所数及び従業者数 > 東京都
    • 主に23区に注目.M5339をダウンロード.economicと名付ける
      • 文字化け問題:文字コードの関係で,テキストファイルが適切に読み込めない場合がある(不正なマルチバイト文字 ...).この場合は、fileEncoding="CP932"のオプションを加える(例えばsep=1の後に).
#ヘッダー(行の説明)あり,カンマ区切り
economic <-
  read.csv("tblT000918H5339/tblT000918H5339.txt", 
           header=TRUE, sep=",",
           fileEncoding="CP932")

#便宜上1行目削除
economic %>%
  slice(-1) ->
  economic

#後ほど,統計データをメッシュ地図と結合するため,KEY_CODEを文字列に変更
economic %>%
  mutate(KEY_CODE=as.character(KEY_CODE)) ->
  economic

境界データのダウンロード

  • 地図で見る統計(統計GIS) > 境界データダウンロード > 4次メッシュ(500mメッシュ) > 世界測地系緯度経度・Shapefile > 都道府県で絞込みはコチラ > 東京都
    • 統計データと対応したメッシュをダウンロード.meshと名付ける.
mesh <-
  read_sf("HDDSWH5339/MESH05339.shp")

#世界測地系を指定
mesh <- 
  mesh %>% 
  st_transform("WGS84")

#meshとeconomicを結合
mesh_economic <-
  left_join(mesh, economic, by=c("KEY_CODE"))

メッシュ地図による事業所数の可視化

  • 情報通信業の事業所数はT000918008の列に含まれる.
#事業所数が文字情報になっている→整数に変更指示
mesh_economic %>%
  mutate(T000918008=as.integer(T000918008)) ->
  mesh_economic

#500mメッシュ事業所数の可視化
ggplot()+
  geom_sf(data=mesh_economic,
          aes(fill=T000918008))+
  scale_fill_viridis_c(option="G",
                       direction=-1)

データ結合

東京都23区(t23_wards_map)の地図にmesheconomic_1を結合し,メッシュが23区に収まるように指示.

st_agr(mesh_economic)="constant"
st_agr(t23_wards_map)="constant"

#東京都23区の地図に事業所数が加わったメッシュデータの完成
mesh_economic_23 <-
  st_intersection(x=mesh_economic,
                  y=t23_wards_map)

3 東京都23区内の事業所数の可視化

ggplot()+
  geom_sf(data=mesh_economic_23,
          aes(fill=T000918008))+
  scale_fill_viridis_c(option="G",
                      direction=-1)+
  labs(fill="事業所数")+
  ggtitle("東京都23区情報通信業(2016年)")+
  theme_bw()

参考

東京都23区の行政区域の地名は以下の通り.

4 OpenStreetMapの活用

OpenStreetMapの可視化

背景としてOpenStreetMap(OSM)を利用.以下はBrunsdon & Comber(2018)356-357頁参照. 

  • library()でパッケージggspatialを呼び出す.
    • annotation_map_tile():背景にOSMのタイルを使う.
    • zoomin:数が大きくなるほど拡大.初期値は-2
  • OSMを利用する際には地図の隅に権利を表示.
    • labs(caption = "\U00a9 OpenStreetMap contributors")
library(ggspatial)

#OSM活用
ggplot()+
  annotation_map_tile(zoomin=0)+
  geom_sf(data=mesh_economic_23, fill="NA")+
  labs(caption="\U00a9 OpenStreetMap contributors")+
  ggtitle("東京都23区周辺のOSM")

##   |                                                                              |                                                                      |   0%  |                                                                              |======                                                                |   8%  |                                                                              |============                                                          |  17%  |                                                                              |==================                                                    |  25%  |                                                                              |=======================                                               |  33%  |                                                                              |=============================                                         |  42%  |                                                                              |===================================                                   |  50%  |                                                                              |=========================================                             |  58%  |                                                                              |===============================================                       |  67%  |                                                                              |====================================================                  |  75%  |                                                                              |==========================================================            |  83%  |                                                                              |================================================================      |  92%  |                                                                              |======================================================================| 100%

完成図

OSMの地図タイル画像を背景に事業所数を可視化.

  • alphaで地図を透かすことにより,最背面のOSMの地図を見える化.
  • color=NAでメッシュ(の枠)を透明に変更.
  • theme_void()を指定することで,緯度経度なしに.
    • labs()にその他の出典も含め,theme()で左寄せにする.
#完成図
ggplot()+
  annotation_map_tile(zoomin=0)+
  geom_sf(data=mesh_economic_23,
          aes(fill=T000918008), 
          alpha=0.7, color=NA)+
  scale_fill_viridis_c(option="G",
                       direction=-1)+
  geom_sf(data=t23_wards_map, fill="NA")+
  labs(fill="事業所数", 
       caption="\U00a9 OpenStreetMap contributors
  出典:国土交通省国土数値情報
  総務省・経済産業省平成28年経済センサス‐活動調査")+
  ggtitle("東京都23区情報通信業(2016年)")+
  theme_void()+
  theme(plot.caption=element_text(hjust=0))

参考文献

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