【R】奈良県の人口別コロプレス図

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

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

map <- read_sf("shp/h27ka29.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() +
  annotation_map_tile(zoomin = 0) +
  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 = 2) +
  labs(caption = "\U00a9 OpenStreetMap contributors") +
  theme_minimal()


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
市区町村 人口
奈良市 360310
橿原市 124111
生駒市 118233
大和郡山市 87050
香芝市 77561
天理市 67398
大和高田市 64817
桜井市 57244
葛城市 36635
広陵町 33487
田原本町 31691
宇陀市 31105
五條市 30997
斑鳩町 27303
御所市 26868
三郷町 23571
王寺町 23025
上牧町 22054
平群町 18883
大淀町 18069
河合町 17941
川西町 8485
安堵町 7443
吉野町 7399
高取町 7195
三宅町 6836
下市町 5664
明日香村 5523
山添村 3674
十津川村 3508
御杖村 1759
東吉野村 1745
曽爾村 1549
天川村 1354
川上村 1313
下北山村 895
黒滝村 660
上北山村 512
野迫川村 449

Add a Comment

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