「leaflet」パッケージなどで使える日本の地図ファイルの作成例の紹介です。元のシェープファイルはフリーで利用可能なNatural Earthを利用しています。プロット例は「leaflet」パッケージを利用しています。
・Natural Earth
http://www.naturalearthdata.com/
・使用したシェープファイル
http://www.naturalearthdata.com/downloads/10m-cultural-vectors/
上記リンクのAdmin 1 – States, Provincesから「Download states and provinces」をクリックしne_10m_admin_1_states_provinces.zipファイルを保存します。保存後、解凍してできるフォルダ内の「ne_10m_admin_1_states_provinces.shp」が目的のファイルです。なお、拡張子「shx」、「dbf」は必須ですので削除しないでください。
実行コマンドはwindows 11のR version 4.1.2で確認しています。
日本の地図ファイル作成の実行コマンド例
詳細はコマンド、各パッケージのヘルプを確認してください。
#必要パッケージの読み込みとインストール
if(!require("rgdal", quietly = TRUE)){
install.packages("rgdal");require("rgdal")
}
if(!require("stringi", quietly = TRUE)){
install.packages("stringi");require("stringi")
}
library("tcltk")
#ダウンロードしたshpデータを読み込み
#読み込みに時間がかかります
JPNPref <- readOGR(paste0(as.character(tkgetOpenFile(title = "shpファイルを選択",
filetypes = '{"shpファイル" {".shp"}}',
initialfile = c("*.shp")))),
GDAL1_integer64_policy = TRUE, encoding = "utf-8")
#日本のデータを抽出
JPNPref <- subset(JPNPref, JPNPref$geonunit == "Japan")
#念のため都道府県名の文字コードをUTF-8にする
JPNPref@data$name_local <- stri_encode(JPNPref@data$name_local, "utf-8")
#静岡県が未入力なので保管する
JPNPref@data$name_local[31] <- "静岡県"
#ファイルを作業ディレクトリに保存
save(JPNPref, file = "JPNPref.spd")
プロット例
詳細はコマンド、各パッケージのヘルプを確認してください。日本の地図ファイルの実行コマンド例で作成できる「JPNPref.spd」を読み込んでください。
#必要パッケージの読み込みとインストール
if(!require("leaflet", quietly = TRUE)){
install.packages("leaflet");require("leaflet")
}
if(!require("htmltools", quietly = TRUE)){
install.packages("htmltools");require("htmltools")
}
if(!require("tidyverse", quietly = TRUE)){
install.packages("tidyverse");require("tidyverse")
}
library("tcltk")
#「JPNPref.spd」を読み込み
load(paste0(as.character(tkgetOpenFile(title = "ファイルを選択",
filetypes = '{"ファイル" {".*"}}',
initialfile = c("*.*")))))
#塗色の設定
pal <- colorFactor("viridis",
domain = JPNPref@data$name_local)
#プロット
leaflet(JPNPref) %>%
addTiles() %>%
addPolygons(color = "red", weight = 1, smoothFactor = 1,
fillColor = ~pal(JPNPref@data$name_local), fillOpacity = .5,
highlightOptions = highlightOptions(color = "white",
weight = .5,
bringToFront = TRUE),
popup = htmlEscape(JPNPref@data$name_local))
出力例
クリックすると都道府県名が表示されます。
少しでも、あなたの解析が楽になりますように!!