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>
aggregate
関数を使って、都道府県別の文化財数を集計する。FUN= length
と設定。# データ集計
cppref <- aggregate(台帳ID ~ 都道府県, data = cp, FUN= length)
# 変数名の変更
cppref$文化財数 <- cppref$台帳ID
cppref$台帳ID <- NULL
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),]
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)
left_join
を用いて、データベースの接続。# 地図情報に文化財数のデータベースを接続
Nippon_map_cp <- left_join(Nippon_map, cppref, by=c("prefid"="prefcode"))
# 地図
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年)")
「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")
# 地図
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")
display.brewer.all()