昨日,こちらの記事でjpcityパッケージを紹介しました. jpcityパッケージでは,内部的に過去の全国の市町村合併(廃置分合)をネットワーク化することで,異なる時点間での市区町村コードの対応付けを行っています.
この記事では,jpcityパッケージが内部で使用する市町村合併ネットワークを以下の方針で可視化しみます.
- 1970年4月1日~2024年4月1日にかけての市町村合併や市・町制施行を都道府県ごとに可視化
- 並び替えにおいて時系列は考慮しない(位置を時点に合わせることも可能だが見えづらいため)
- 区の分離・分割は対象外
都道府県別の市町村合併の可視化結果
以下に市町村合併の可視化結果を示します.データ上の不備等に気づかれた方はコメント等でお知らせいただければ幸いです. ラベルが重なって見づらい箇所があることをご了承ください.
コード
library(tidyverse)
library(tidygraph)
library(ggraph)
date_end <- ymd("2024-04-01")
graph_city <- jpcity:::graph_city$graph_city |>
activate(nodes) |>
filter(!node_is_isolated(),
is.infinite(interval) | int_end(interval) <= date_end) |>
arrange(desc(interval)) |>
replace_na(list(city_desig_name = "",
city_name = "")) |>
mutate(city_name = str_c(city_desig_name, city_name)) |>
select(!city_desig_name) |>
mutate(group = group_components()) |>
activate(edges) |>
filter(!type %in% c("分離", "分割"))
jpcity::parse_pref(1:47) |>
walk(\(pref) {
pref_name <- jpcity::pref_name(pref)
plot <- graph_city |>
activate(nodes) |>
filter(pref_name == .env$pref_name) |>
create_layout("fabric") |>
# ラベル位置を時系列に合わせることも可能だが見えづらいため省略
# mutate(y = int_start(interval)) |>
ggraph() +
geom_edge_diagonal(color = "gray",
arrow = arrow(length = unit(2, 'mm')),
end_cap = circle(8, 'mm')) +
geom_node_label(aes(label = city_name,
fill = as_factor(group)),
size = 3,
show.legend = FALSE) +
scale_fill_hue(l = 100) +
coord_flip() +
labs(title = pref_name) +
theme_void()
print(plot)
})