Rでお遊び:何かに使えるかも?各都道府県を四角で表示!


各都道府県を四角で表示する日本地図データの紹介です。ggplot2パッケージなどで利用が可能です。

windows 11のR version 4.1.2で確認しています。

日本地図データの作成

下記コマンドを実行してください。作業フォルダにJpanMiniMap.csvを保存します。

#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

JpanMiniMap <- tibble(
  #都道府県名
  Pref = c("北海道", "青森県", "岩手県", "宮城県", "福島県", "茨城県", "千葉県", "秋田県", "山形県",
           "新潟県", "栃木県", "埼玉県", "東京都", "群馬県", "山梨県", "神奈川県", "富山県",
           "長野県", "静岡県", "石川県", "福井県", "岐阜県", "愛知県", "滋賀県", "三重県",
           "京都府", "奈良県", "和歌山県", "兵庫県", "大阪府", "鳥取県", "岡山県", "島根県",
           "広島県", "香川県", "徳島県", "愛媛県", "高知県", "山口県", "福岡県", "大分県",
           "宮崎県", "佐賀県", "熊本県", "鹿児島県", "長崎県", "沖縄県"),
  #各都道府県の位置
  x = c(15.9, 15.5, 16, 16, 15.7, 15.7, 16, 15, 15, 14.7, 14.7, 15,
        15, 13.7, 14, 14, 12.7, 13, 13, 11.7, 11.7, 12, 12, 11, 11,
        10, 10, 10, 9, 9, 8, 8, 7, 7, 7.5, 7.5, 6.5, 6.5, 6, 4.5, 4.5,
        4.5, 3.5, 3.5, 3.5, 2.5, 2),
  y = c(12.9, 10.5, 9.5, 8.5, 7.5, 6.5, 5.5, 9.5, 8.5, 7.5, 6.5, 5.5,
        4.5, 6.5, 5.5, 4.5, 6.5, 5.5, 4.5, 7.5, 6.5, 5.5, 4.5, 5.5,
        4.5, 6, 5, 4, 5.5, 4.5, 6, 5, 6, 5, 3.5, 2.5, 3.5, 2.5, 5.5, 5, 4,
        3, 5, 4, 3, 5, 2),
  #widthとheightはタイルの大きさ
  width = c(2.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 1, 1, 1, 1),
  height = c(2.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
             1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
             1, 1, 1, 1, 1, 1))

#作業フォルダに保存
write.csv(JpanMiniMap, file = "JpanMiniMap.csv", row.names = FALSE)

JpanMiniMapデータの利用例

詳細はコマンド、パッケージのヘルプを確認してください。

library("tcltk")
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

#JpanMiniMapを読み込む
JpanMiniMap <- read.csv(paste0(as.character(tkgetOpenFile(title = "ファイルを選択",
                                                          filetypes = '{"ファイル" {".*"}}',
                                                          initialfile = c("*.*")))))

###気象庁より気温データを取得#####
#http://www.data.jma.go.jp/obd/stats/data/mdrr/docs/csv_dl_readme.html
MaxTemp <- read.csv("http://www.data.jma.go.jp/obd/stats/data/mdrr/tem_rct/alltable/mxtemsadext00_rct.csv",
                    header = T, fileEncoding = "cp932")

#データ保管用変数
NewMaxTemp <- NULL
#処理
for(n in 1:47){
  #都道府県を抽出
  GetPref <- JpanMiniMap[n, 1]
  GetPrefData <- MaxTemp[which(MaxTemp[, 2] %in% grep(GetPref, MaxTemp[, 2], value = TRUE)),]
  #昨日の最高気温を降順で並び替え
  GetPrefData <- GetPrefData[order(GetPrefData[, 10], decreasing = TRUE),]
  #昨日の最高気温を取得
  NewMaxTemp <- c(NewMaxTemp, GetPrefData[1, 10])
}

#地図データに昨日の最高気温を結合
JpanMiniMap <- cbind(JpanMiniMap, NewMaxTemp)

#プロット
ggplot(JpanMiniMap,
       aes(x = x, y = y, width = width, height = height)) +
  geom_tile(aes(fill = JpanMiniMap[, 6]),
            color = "grey", show.legend = TRUE) +
  geom_text(aes(label = JpanMiniMap[, 1]), size = 2.6) +
  coord_fixed(ratio = 1) +
  scale_fill_distiller(palette = "Spectral", name = "気温") +
  theme_void()

出力例

22.01.23に気象庁より取得した各都道府県の最高気温をプロットしています。


あなたの解析がとっても楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク