はじめに

本記事では、Rを使って政府統計(e-Stat)からAPIを使って都道府県の人口データを取得して棒グラフ表示する。

前準備

API機能を使うには、e-Statでのユーザ登録が必要である。 以下のサイトでユーザ登録を行う。メールアドレスが必要。それ以外に名前や住所などは必要ない。

https://www.e-stat.go.jp/api/

登録したらログイン後のマイページから「API機能(アプリケーションID発行)」に進んでアプリケーションIDを発行しよう。

名称、URLを適当に(testなどでも可)入力して「発行」を押せば下のappIdに数字とa〜fの組み合わせが表示される。 これがアプリケーションID(appId)になるのでコピーする。 このappIdは発行した人だけが使うものなので他の人には教えないように。

Rプログラム

options(crayon.enabled = FALSE) # 色
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.2.1
✔ lubridate 1.9.4     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
apikey = "9a95xxxxxxxxxxxxxxxxxxxxxxxxxxxxx1b24" # 前準備でコピーした自分のappId

url <- paste0("http://api.e-stat.go.jp/rest/3.0/app/getSimpleStatsData?appId=", apikey, "&lang=J&statsDataId=0003445078&metaGetFlg=N&cntGetFlg=N&explanationGetFlg=N&annotationGetFlg=N&sectionHeaderFlg=1&replaceSpChars=0")

jinkou <- read_csv(url, skip = 27)
── Column specification ────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (7): tab_code, 表章事項, 男女, area_code, 全国,都道府県,市区町村(2000年市区町村含む), 時間軸(年次), unit
dbl (3): cat01_code, time_code, value

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Warning message:
One or more parsing issues, call `problems()` on your data frame for details, e.g.:
  dat <- vroom(...)
  problems(dat)

「全国,都道府県,市区町村(2000年市区町村含む)」というカラム名があるので注意。 今回は都道府県のみ抽出するのでrenameでカラム名を都道府県に変更する。

jinkou47 <- jinkou |>
    filter(area_code != "00000") |>    # 全国のデータを除く
    filter(str_ends(area_code, "000")) |>  # 都道府県のデータのみ抽出
    rename(都道府県 = `全国,都道府県,市区町村(2000年市区町村含む)`) |>
    print(n=Inf)
# A tibble: 141 × 10
    tab_code 表章事項 cat01_code 男女  area_code 都道府県  time_code `時間軸(年次)` unit     value
   <dbl>
  1 2020_01  人口              0 総数  01000     北海道   2020000000 2020年           人     5224614
  2 2020_01  人口              0 総数  02000     青森県   2020000000 2020年           人     1237984
  3 2020_01  人口              0 総数  03000     岩手県   2020000000 2020年           人     1210534
  4 2020_01  人口              0 総数  04000     宮城県   2020000000 2020年           人     2301996
  5 2020_01  人口              0 総数  05000     秋田県   2020000000 2020年           人      959502
  6 2020_01  人口              0 総数  06000     山形県   2020000000 2020年           人     1068027
  7 2020_01  人口              0 総数  07000     福島県   2020000000 2020年           人     1833152
  8 2020_01  人口              0 総数  08000     茨城県   2020000000 2020年           人     2867009
  9 2020_01  人口              0 総数  09000     栃木県   2020000000 2020年           人     1933146
 10 2020_01  人口              0 総数  10000     群馬県   2020000000 2020年           人     1939110
 11 2020_01  人口              0 総数  11000     埼玉県   2020000000 2020年           人     7344765
 12 2020_01  人口              0 総数  12000     千葉県   2020000000 2020年           人     6284480
 13 2020_01  人口              0 総数  13000     東京都   2020000000 2020年           人    14047594
 14 2020_01  人口              0 総数  14000     神奈川県 2020000000 2020年           人     9237337
 15 2020_01  人口              0 総数  15000     新潟県   2020000000 2020年           人     2201272
 16 2020_01  人口              0 総数  16000     富山県   2020000000 2020年           人     1034814
 17 2020_01  人口              0 総数  17000     石川県   2020000000 2020年           人     1132526
 18 2020_01  人口              0 総数  18000     福井県   2020000000 2020年           人      766863
 19 2020_01  人口              0 総数  19000     山梨県   2020000000 2020年           人      809974
 20 2020_01  人口              0 総数  20000     長野県   2020000000 2020年           人     2048011
 21 2020_01  人口              0 総数  21000     岐阜県   2020000000 2020年           人     1978742
 22 2020_01  人口              0 総数  22000     静岡県   2020000000 2020年           人     3633202
 23 2020_01  人口              0 総数  23000     愛知県   2020000000 2020年           人     7542415
 24 2020_01  人口              0 総数  24000     三重県   2020000000 2020年           人     1770254
 25 2020_01  人口              0 総数  25000     滋賀県   2020000000 2020年           人     1413610
 26 2020_01  人口              0 総数  26000     京都府   2020000000 2020年           人     2578087
 27 2020_01  人口              0 総数  27000     大阪府   2020000000 2020年           人     8837685
 28 2020_01  人口              0 総数  28000     兵庫県   2020000000 2020年           人     5465002
 29 2020_01  人口              0 総数  29000     奈良県   2020000000 2020年           人     1324473
 30 2020_01  人口              0 総数  30000     和歌山県 2020000000 2020年           人      922584
 31 2020_01  人口              0 総数  31000     鳥取県   2020000000 2020年           人      553407
 32 2020_01  人口              0 総数  32000     島根県   2020000000 2020年           人      671126
 33 2020_01  人口              0 総数  33000     岡山県   2020000000 2020年           人     1888432
 34 2020_01  人口              0 総数  34000     広島県   2020000000 2020年           人     2799702
 35 2020_01  人口              0 総数  35000     山口県   2020000000 2020年           人     1342059
 36 2020_01  人口              0 総数  36000     徳島県   2020000000 2020年           人      719559
 37 2020_01  人口              0 総数  37000     香川県   2020000000 2020年           人      950244
 38 2020_01  人口              0 総数  38000     愛媛県   2020000000 2020年           人     1334841
 39 2020_01  人口              0 総数  39000     高知県   2020000000 2020年           人      691527
 40 2020_01  人口              0 総数  40000     福岡県   2020000000 2020年           人     5135214
 41 2020_01  人口              0 総数  41000     佐賀県   2020000000 2020年           人      811442
 42 2020_01  人口              0 総数  42000     長崎県   2020000000 2020年           人     1312317
 43 2020_01  人口              0 総数  43000     熊本県   2020000000 2020年           人     1738301
 44 2020_01  人口              0 総数  44000     大分県   2020000000 2020年           人     1123852
 45 2020_01  人口              0 総数  45000     宮崎県   2020000000 2020年           人     1069576
 46 2020_01  人口              0 総数  46000     鹿児島県 2020000000 2020年           人     1588256
 47 2020_01  人口              0 総数  47000     沖縄県   2020000000 2020年           人     1467480
 48 2020_01  人口              101000     北海道   2020000000 2020年           人     2465088
 49 2020_01  人口              102000     青森県   2020000000 2020年           人      583402
 50 2020_01  人口              103000     岩手県   2020000000 2020年           人      582952
 51 2020_01  人口              104000     宮城県   2020000000 2020年           人     1122598
 52 2020_01  人口              105000     秋田県   2020000000 2020年           人      452439
 53 2020_01  人口              106000     山形県   2020000000 2020年           人      516438
 54 2020_01  人口              107000     福島県   2020000000 2020年           人      903864
 55 2020_01  人口              108000     茨城県   2020000000 2020年           人     1430976
 56 2020_01  人口              109000     栃木県   2020000000 2020年           人      964930
 57 2020_01  人口              110000     群馬県   2020000000 2020年           人      959411
 58 2020_01  人口              111000     埼玉県   2020000000 2020年           人     3652169
 59 2020_01  人口              112000     千葉県   2020000000 2020年           人     3117987
 60 2020_01  人口              113000     東京都   2020000000 2020年           人     6898388
 61 2020_01  人口              114000     神奈川県 2020000000 2020年           人     4588268
 62 2020_01  人口              115000     新潟県   2020000000 2020年           人     1068670
 63 2020_01  人口              116000     富山県   2020000000 2020年           人      502637
 64 2020_01  人口              117000     石川県   2020000000 2020年           人      549771
 65 2020_01  人口              118000     福井県   2020000000 2020年           人      373973
 66 2020_01  人口              119000     山梨県   2020000000 2020年           人      397309
 67 2020_01  人口              120000     長野県   2020000000 2020年           人     1000389
 68 2020_01  人口              121000     岐阜県   2020000000 2020年           人      960436
 69 2020_01  人口              122000     静岡県   2020000000 2020年           人     1791118
 70 2020_01  人口              123000     愛知県   2020000000 2020年           人     3761502
 71 2020_01  人口              124000     三重県   2020000000 2020年           人      864475
 72 2020_01  人口              125000     滋賀県   2020000000 2020年           人      697429
 73 2020_01  人口              126000     京都府   2020000000 2020年           人     1231468
 74 2020_01  人口              127000     大阪府   2020000000 2020年           人     4235956
 75 2020_01  人口              128000     兵庫県   2020000000 2020年           人     2599756
 76 2020_01  人口              129000     奈良県   2020000000 2020年           人      623926
 77 2020_01  人口              130000     和歌山県 2020000000 2020年           人      435051
 78 2020_01  人口              131000     鳥取県   2020000000 2020年           人      264432
 79 2020_01  人口              132000     島根県   2020000000 2020年           人      324291
 80 2020_01  人口              133000     岡山県   2020000000 2020年           人      908045
 81 2020_01  人口              134000     広島県   2020000000 2020年           人     1357156
 82 2020_01  人口              135000     山口県   2020000000 2020年           人      636736
 83 2020_01  人口              136000     徳島県   2020000000 2020年           人      343265
 84 2020_01  人口              137000     香川県   2020000000 2020年           人      459197
 85 2020_01  人口              138000     愛媛県   2020000000 2020年           人      633062
 86 2020_01  人口              139000     高知県   2020000000 2020年           人      326531
 87 2020_01  人口              140000     福岡県   2020000000 2020年           人     2430951
 88 2020_01  人口              141000     佐賀県   2020000000 2020年           人      384451
 89 2020_01  人口              142000     長崎県   2020000000 2020年           人      616912
 90 2020_01  人口              143000     熊本県   2020000000 2020年           人      822481
 91 2020_01  人口              144000     大分県   2020000000 2020年           人      533414
 92 2020_01  人口              145000     宮崎県   2020000000 2020年           人      504763
 93 2020_01  人口              146000     鹿児島県 2020000000 2020年           人      748306
 94 2020_01  人口              147000     沖縄県   2020000000 2020年           人      722812
 95 2020_01  人口              201000     北海道   2020000000 2020年           人     2759526
 96 2020_01  人口              202000     青森県   2020000000 2020年           人      654582
 97 2020_01  人口              203000     岩手県   2020000000 2020年           人      627582
 98 2020_01  人口              204000     宮城県   2020000000 2020年           人     1179398
 99 2020_01  人口              205000     秋田県   2020000000 2020年           人      507063
100 2020_01  人口              206000     山形県   2020000000 2020年           人      551589
101 2020_01  人口              207000     福島県   2020000000 2020年           人      929288
102 2020_01  人口              208000     茨城県   2020000000 2020年           人     1436033
103 2020_01  人口              209000     栃木県   2020000000 2020年           人      968216
104 2020_01  人口              210000     群馬県   2020000000 2020年           人      979699
105 2020_01  人口              211000     埼玉県   2020000000 2020年           人     3692596
106 2020_01  人口              212000     千葉県   2020000000 2020年           人     3166493
107 2020_01  人口              213000     東京都   2020000000 2020年           人     7149206
108 2020_01  人口              214000     神奈川県 2020000000 2020年           人     4649069
109 2020_01  人口              215000     新潟県   2020000000 2020年           人     1132602
110 2020_01  人口              216000     富山県   2020000000 2020年           人      532177
111 2020_01  人口              217000     石川県   2020000000 2020年           人      582755
112 2020_01  人口              218000     福井県   2020000000 2020年           人      392890
113 2020_01  人口              219000     山梨県   2020000000 2020年           人      412665
114 2020_01  人口              220000     長野県   2020000000 2020年           人     1047622
115 2020_01  人口              221000     岐阜県   2020000000 2020年           人     1018306
116 2020_01  人口              222000     静岡県   2020000000 2020年           人     1842084
117 2020_01  人口              223000     愛知県   2020000000 2020年           人     3780913
118 2020_01  人口              224000     三重県   2020000000 2020年           人      905779
119 2020_01  人口              225000     滋賀県   2020000000 2020年           人      716181
120 2020_01  人口              226000     京都府   2020000000 2020年           人     1346619
121 2020_01  人口              227000     大阪府   2020000000 2020年           人     4601729
122 2020_01  人口              228000     兵庫県   2020000000 2020年           人     2865246
123 2020_01  人口              229000     奈良県   2020000000 2020年           人      700547
124 2020_01  人口              230000     和歌山県 2020000000 2020年           人      487533
125 2020_01  人口              231000     鳥取県   2020000000 2020年           人      288975
126 2020_01  人口              232000     島根県   2020000000 2020年           人      346835
127 2020_01  人口              233000     岡山県   2020000000 2020年           人      980387
128 2020_01  人口              234000     広島県   2020000000 2020年           人     1442546
129 2020_01  人口              235000     山口県   2020000000 2020年           人      705323
130 2020_01  人口              236000     徳島県   2020000000 2020年           人      376294
131 2020_01  人口              237000     香川県   2020000000 2020年           人      491047
132 2020_01  人口              238000     愛媛県   2020000000 2020年           人      701779
133 2020_01  人口              239000     高知県   2020000000 2020年           人      364996
134 2020_01  人口              240000     福岡県   2020000000 2020年           人     2704263
135 2020_01  人口              241000     佐賀県   2020000000 2020年           人      426991
136 2020_01  人口              242000     長崎県   2020000000 2020年           人      695405
137 2020_01  人口              243000     熊本県   2020000000 2020年           人      915820
138 2020_01  人口              244000     大分県   2020000000 2020年           人      590438
139 2020_01  人口              245000     宮崎県   2020000000 2020年           人      564813
140 2020_01  人口              246000     鹿児島県 2020000000 2020年           人      839950
141 2020_01  人口              247000     沖縄県   2020000000 2020年           人      744668

今回は総数のデータのみ使うことにする。

jinkou47 |>
    filter(男女 == "総数") |>
    ggplot(aes(y = value, x = reorder(都道府県, value))) + # valueによる降順
    geom_bar(stat = "identity") + # valueの値を棒グラフの長さとする
    coord_flip() # 横の棒グラフ

完成。

graph20250601014244.png

参考

政府統計の総合窓口(e-Stat)のAPI 仕様 3.0版

https://www.e-stat.go.jp/api/api-info/e-stat-manual3-0