【R】熊本県の人口別コロプレス図

熊本県の市区町村を人口別に塗りつぶしてみます。境界の描画は「地図で見る統計(統計GIS)」の「43000 熊本県全域 世界測地系緯度経度・Shapefile」から取得します。

library(ggplot2)
library(ggrepel)
library(sf)
library(tidyverse)
library(kableExtra)


map <- read_sf("shp/h27ka43.shp") # 熊本県のシェープファイル


dat <- map %>%
  group_by(CITY_NAME) %>% # 市名でグルーピング
  summarize('Pop.total' = sum(JINKO))  %>% # グループ単位で領域結合, 人口計算
  mutate( # 重心計算と座標値の抽出
    centroid = st_centroid(geometry),
    x = st_coordinates(centroid)[, 1],
    y = st_coordinates(centroid)[, 2]
  ) %>%
  arrange(desc(Pop.total))

dat %>%
  ggplot() +
  geom_sf(aes(fill = Pop.total)) +  # 人口毎に色分け
  coord_sf(datum = NA) + 
  scale_fill_viridis_c(alpha = 0.6) +
  theme_void()+ 
  geom_text_repel(aes(x = x, y = y, label = CITY_NAME), col="black",
                  family = "JP4", size = 3)


table_df<-data.frame(市区町村=dat$CITY_NAME, 人口=dat$Pop.total)

library(clipr)
table_df %>% 
  kable(align = "c", row.names=FALSE) %>%
  kable_styling(full_width = F) %>%
  column_spec(1, bold = T) %>%
  collapse_rows(columns = 1, valign = "middle") %>% 
  write_clip
市区町村 人口
東区 190451
中央区 186300
北区 143131
南区 127769
八代市 127472
西区 93171
天草市 82739
玉名市 66782
宇城市 59756
合志市 58370
荒尾市 53407
山鹿市 52264
菊池市 48167
菊陽町 40984
宇土市 37026
人吉市 33880
益城町 33611
大津町 33452
阿蘇市 27018
上天草市 27006
水俣市 25411
芦北町 17661
御船町 17237
長洲町 15889
あさぎり町 15523
山都町 15149
氷川町 11994
南阿蘇村 11503
錦町 10766
甲佐町 10717
美里町 10333
和水町 10191
多良木町 9791
南関町 9786
嘉島町 9054
苓北町 7739
小国町 7187
西原村 6802
高森町 6325
玉東町 5265
津奈木町 4673
相良村 4468
南小国町 4048
湯前町 3985
球磨村 3698
山江村 3422
水上村 2232
産山村 1510
五木村 1055

Add a Comment

メールアドレスが公開されることはありません。