library(sf)
library(dplyr)
library(tidyverse)
library(stringr)
library(readxl)
data_file <- file.path('../data', 'major_results_2020.xlsx')
data <- read_excel(data_file)
geodata_file <- file.path('../data','N03-20250101.geojson')
geodata <- st_read(geodata_file) %>%
rename('shityouson' = 'N03_004', '市町村コード' = 'N03_007')
prefdata_file <- file.path('../data', 'pref_lat_lon.csv')
prefdata <- read.csv(prefdata_file) %>% rename('都道府県名'='pref_name')
pref_list <- c('北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県', '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県', '山梨県', '長野県', '新潟県', '富山県', '石川県', '福井県', '岐阜県', '静岡県', '愛知県', '三重県', '滋賀県', '京都府', '大阪府', '兵庫県', '奈良県', '和歌山県', '鳥取県', '島根県', '岡山県', '広島県', '山口県', '徳島県', '香川県', '愛媛県', '高知県', '福岡県', '佐賀県', '長崎県', '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県')
merge_data <- merge(geodata, data, by='市町村コード', all.geodata=TRUE)
get_png <- function(filename) {
grid::rasterGrob(png::readPNG(filename), interpolate = TRUE)
}
l <- get_png('./logoandurl.png')
t <- grid::roundrectGrob()
for (pref_name in pref_list) {
print(pref_name)
merge_data2 <- dplyr::filter(merge_data, 都道府県名==pref_name)
title <- sprintf('市町村別高齢者人口割合 (%s, 2020年)', pref_name)
koureikamap <- ggplot(merge_data2) +
geom_sf(aes(fill = 人口65歳以上割合),linewidth=0.1, color='#303030') +
scale_fill_gradient2(low='blue', mid='yellow', high='red', name='(%)', midpoint=40, limits=c(15,65)) +
ggtitle(title) +
theme(
## テキストの設定
plot.title = element_text(family = "sans", size = 10, color="black", hjust = 0.5, face="bold"),
axis.text.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank(),
legend.key.height=unit(0.5,'cm'),
legend.key.width= unit(0.1, 'cm'),
legend.title = element_text(family="sans",size=7,color="black",face="bold"),
legend.text = element_text(family="sans",size=7,color="black",face="bold"),
legend.ticks = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = unit(c(0.5, 0.5, 1.5, 0.5), "lines"),
panel.background = element_rect(fill = "#f0f7ff",color = NA)
)
if (pref_name=='東京都') {
koureikamap <- koureikamap +
scale_x_continuous(limits=c(138.9, 140), expand=c(0,0), breaks=c(seq(120,150,5))) +
scale_y_continuous(limits=c(35.4, 36), expand=c(0,0), breaks=c(seq(30,50,5)))
}
ggsave(file = sprintf("./png/koureika_%s.png",pref_name), plot=koureikamap, dpi = 150, width = 3.5, height = 3.5)
}市町村別高齢者割合マップ
society
高齢化
市町村別の65歳以上人口の割合をヒートマップで示したグラフです。スクリプトも公開しています。完全フリーです。
都道府県別市町村ごとの65歳以上人口割合
ページ最下部に生成スクリプトを記載しています。
| 作成日 | 2025-09-02 |
| データ取得日 | 2025-027 |
| データ元 | 令和二年国勢調査|人口基本集計 |
| 使用したパッケージ | R, ggplot2 |
北海道・東北







関東









北陸




中部




近畿






中国





四国




九州・沖縄







