1 都道府県別文化財数データの作成

1.1 データ読み込み

library(readr)
cp <- read_csv("cultural_property.csv")
head(cp)
## # A tibble: 6 × 18
##   台帳ID 管理対象ID 名称                棟名  文化財種類 種別1 種別2 国    時代 
##    <dbl> <chr>      <chr>               <chr> <chr>      <chr> <chr> <lgl> <chr>
## 1    102 23         旧旭川偕行社        <NA>  国宝・重…  重要… 近代… NA    明治 
## 2    102 00003904   遺愛学院(旧遺愛女… 本館  国宝・重…  重要… 近代… NA    明治 
## 3    102 3697       遺愛学院(旧遺愛女… 旧宣… 国宝・重…  重要… 近代… NA    明治 
## 4    102 00004217   大谷派本願寺函館別… 本堂  国宝・重…  重要… 近代… NA    大正 
## 5    102 00004218   大谷派本願寺函館別… 鐘楼  国宝・重…  重要… 近代… NA    大正 
## 6    102 00004219   大谷派本願寺函館別… 正門  国宝・重…  重要… 近代… NA    大正 
## # ℹ 9 more variables: 重文指定年月日 <dbl>, 国宝指定年月日 <dbl>,
## #   都道府県 <chr>, 所在地 <chr>, 保管施設の名称 <chr>, 所有者名 <chr>,
## #   管理団体又は責任者 <chr>, 緯度 <dbl>, 経度 <dbl>

1.2 都道府県別集計

  • aggregate関数を使って、都道府県別の文化財数を集計する。
  • 今回は、データ数をカウントしたいので、FUN= lengthと設定。
# データ集計
cppref <- aggregate(台帳ID ~ 都道府県, data = cp, FUN= length)

# 変数名の変更
cppref$文化財数 <- cppref$台帳ID
cppref$台帳ID <- NULL

1.3 都道府県コード

  • 地図データとの接合に備えて、都道府県コードを追加する。
cppref$prefcode <- 1
cppref$prefcode[cppref$都道府県=="青森県"] <- 2
cppref$prefcode[cppref$都道府県=="青森県"] <- 2
cppref$prefcode[cppref$都道府県=="岩手県"] <- 3
cppref$prefcode[cppref$都道府県=="宮城県"] <- 4
cppref$prefcode[cppref$都道府県=="秋田県"] <- 5
cppref$prefcode[cppref$都道府県=="山形県"] <- 6
cppref$prefcode[cppref$都道府県=="福島県"] <- 7
cppref$prefcode[cppref$都道府県=="茨城県"] <- 8
cppref$prefcode[cppref$都道府県=="栃木県"] <- 9
cppref$prefcode[cppref$都道府県=="群馬県"] <- 10
cppref$prefcode[cppref$都道府県=="埼玉県"] <- 11
cppref$prefcode[cppref$都道府県=="千葉県"] <- 12
cppref$prefcode[cppref$都道府県=="東京都"] <- 13
cppref$prefcode[cppref$都道府県=="神奈川県"] <- 14
cppref$prefcode[cppref$都道府県=="新潟県"] <- 15
cppref$prefcode[cppref$都道府県=="富山県"] <- 16
cppref$prefcode[cppref$都道府県=="石川県"] <- 17
cppref$prefcode[cppref$都道府県=="福井県"] <- 18
cppref$prefcode[cppref$都道府県=="山梨県"] <- 19
cppref$prefcode[cppref$都道府県=="長野県"] <- 20
cppref$prefcode[cppref$都道府県=="岐阜県"] <- 21
cppref$prefcode[cppref$都道府県=="静岡県"] <- 22
cppref$prefcode[cppref$都道府県=="愛知県"] <- 23
cppref$prefcode[cppref$都道府県=="三重県"] <- 24
cppref$prefcode[cppref$都道府県=="滋賀県"] <- 25
cppref$prefcode[cppref$都道府県=="京都府"] <- 26
cppref$prefcode[cppref$都道府県=="大阪府"] <- 27
cppref$prefcode[cppref$都道府県=="兵庫県"] <- 28
cppref$prefcode[cppref$都道府県=="奈良県"] <- 29
cppref$prefcode[cppref$都道府県=="和歌山県"] <- 30
cppref$prefcode[cppref$都道府県=="鳥取県"] <- 31
cppref$prefcode[cppref$都道府県=="島根県"] <- 32
cppref$prefcode[cppref$都道府県=="岡山県"] <- 33
cppref$prefcode[cppref$都道府県=="広島県"] <- 34
cppref$prefcode[cppref$都道府県=="山口県"] <- 35
cppref$prefcode[cppref$都道府県=="徳島県"] <- 36
cppref$prefcode[cppref$都道府県=="香川県"] <- 37
cppref$prefcode[cppref$都道府県=="愛媛県"] <- 38
cppref$prefcode[cppref$都道府県=="高知県"] <- 39
cppref$prefcode[cppref$都道府県=="福岡県"] <- 40
cppref$prefcode[cppref$都道府県=="佐賀県"] <- 41
cppref$prefcode[cppref$都道府県=="長崎県"] <- 42
cppref$prefcode[cppref$都道府県=="熊本県"] <- 43
cppref$prefcode[cppref$都道府県=="大分県"] <- 44
cppref$prefcode[cppref$都道府県=="宮崎県"] <- 45
cppref$prefcode[cppref$都道府県=="鹿児島県"] <- 46
cppref$prefcode[cppref$都道府県=="沖縄県"] <- 47

# 並び替え
cppref <- cppref[order(cppref$prefcode),]

2 日本地図の準備

2.1 白地図の準備

  • NipponMapパッケージの白地図を利用する。
# 白地図
library(NipponMap)
# 地理機能使うため
library(sf)
# グラフ作成などのため
library(tidyverse)
# 色の指定のため
library(RColorBrewer)

# 地図の取得
Nippon_map <- read_sf(system.file("shapes/jpn.shp", package = "NipponMap")[1],
               crs = "+proj=longlat +datum=WGS84")

# 接合に備えて、都道府県IDを数値化しておく
Nippon_map$prefid <- as.numeric(Nippon_map$SP_ID)

2.2 日本地図への文化財数の接合

  • left_joinを用いて、データベースの接続。
# 地図情報に文化財数のデータベースを接続
Nippon_map_cp <- left_join(Nippon_map, cppref, by=c("prefid"="prefcode"))

3 地図描画

3.1 通常の日本地図

# 地図
ggplot(Nippon_map_cp, aes(fill = 文化財数)) + 
  geom_sf() + 
  scale_fill_gradientn(colors=brewer.pal(9,"GnBu"))+
  theme_gray (base_family = "HiraKakuPro-W3")+
  labs(fill = "文化財数")+
  ggtitle("都道府県別の文化財数 (2024年)")

3.2 沖縄県をずらした日本地図

  • 「chapter: 5 可視化(2):ggplot2による地図作成」を参考にして、沖縄県の緯度経度をずらす。

  • さらに、annotateを使って、沖縄県の周囲に線を引く。

  • 例えば、沖縄県庁の緯度経度(26.21, 127.68)に(5, 12)足すと、沖縄県庁は地図上では(31.21, 139.68)に移動する。

# 沖縄県の緯度経度をずらす
Nippon_map_cp_okinawa <- Nippon_map_cp
Nippon_map_cp_okinawa$geometry[47] <- Nippon_map_cp_okinawa$geometry[47]+c(12, 5) 

# 地図
ggplot()+ 
  geom_sf(data=Nippon_map_cp_okinawa, aes(fill = 文化財数))+
  scale_fill_gradientn(colors=brewer.pal(9,"GnBu"))+
  annotate("segment", x=139.8, xend=141, y=32.2, yend=32.2,
            color="gray", size=1)+
  annotate("segment", x=138.5, xend=139.8, y=31, yend=32.2,
           color="gray", size=1)+
  labs(fill="文化財数", x="", y="",
       caption="出典:文化庁データベース")+
  ggtitle("都道府県別文化財数")+
  theme_bw(base_family = "HiraKakuPro-W3")

# 保存
ggsave("cppref_map.jpg", width = 16, height = 10, dpi = "print")

3.3 沖縄県をずらした日本地図(黄赤)

  • 色を変えてみる。
# 地図
ggplot()+ 
  geom_sf(data=Nippon_map_cp_okinawa, aes(fill = 文化財数))+
  scale_fill_gradientn(colors=brewer.pal(9,"YlOrRd"))+
  annotate("segment", x=139.8, xend=141, y=32.2, yend=32.2,
            color="gray", size=1)+
  annotate("segment", x=138.5, xend=139.8, y=31, yend=32.2,
           color="gray", size=1)+
  labs(fill="文化財数", x="", y="",
       caption="出典:文化庁データベース")+
  ggtitle("都道府県別文化財数")+
  theme_bw(base_family = "HiraKakuPro-W3")

4 補論:カラーパレット

display.brewer.all()

5 参考にしたページ