toriR blog
ツバメたちの福井県の巣の分布地図をRで書いてみる)
2022年と2023年に福井県のツバメ3種(ツバメ、イワツバメ、コシアカツバメ)の巣分布を市民科学で調査しました。その結果まとめのためにコードを書いてみようと思います。R文法は全く忘れています。まず、福井県の市町毎に巣の数を色分けして地図表示させてみました。その備忘録です。chatGPTと一緒に行いました。環境とバージョンの確認
MacOSX: Sonoma14.12/ Apple M1 Max/32GB
R version 4.3.2 (2023-10-31) -- "Eye Holes"
RStudio バージョン2023.12.0+369 (2023.12.0+369)
福井県の市町の白地図を書いてみる
まず、このページを参考にして、福井県の市町の白地図を書いてみます。
ライブラリを整える
- 幾つかのライブラリがなかったので整えます。
{R} # 足りないライブラリのインストール install.packages("remotes") remotes::install_github("uribo/jpndistrict") # ここからライブラリの読み取り。 library(sf) library(dplyr) library(ggplot2) library(jpndistrict)
福井県の県番号を調べる方法。
福井県は18でした。
- jpnprefsはこちらのデータセットです。
print(n=46,jpnprefs)
# 全件表示して、引用は該当部のみ
...18 18 福井県 福井市 中部 本州 Fukui-ken Fukui-shi Chubu Honshu 36.1
...
福井県の白地図を書いてみる
# 福井県のデータを取り出します。
<- jpn_pref(18)
fukui <- ggplot(fukui) +
g geom_sf() +
theme_void()
g# 得られた白地図はこのページの図1の通りです。うまくいきました。
ツバメの巣の数のデータの準備
- 登録されている市町名を調べます。
# 登録名を調べる
> head(fukui)
...
pref_code prefecture city_code city geometry<chr> <chr> <chr> <chr> <MULTIPOLYGON [°]>
1 18 福井県 18201 福井市 (((135.9643 35.99761, 135.9675 35.99886, 135.9685 36.00164, 135.97 36.00104, 135.972...
...# cityがデータ名なのでそれを取得
$city
fukui1] "福井市" "敦賀市" "小浜市" "大野市" "勝山市" "鯖江市"
[7] "あわら市" "越前市" "坂井市" "吉田郡 永平寺町" "今立郡 池田町" "南条郡 南越前町"
[13] "丹生郡 越前町" "三方郡 美浜町" "大飯郡 高浜町" "大飯郡 おおい町" "三方上中郡 若狭町" [
# tubame_su.csvをvimで編集します。こんな感じ。terminalで作りました。数字は適当です。
$ cat tubame_su.csv
city,nest_count
"福井市",100
"敦賀市",15
"小浜市",33
"大野市",55
"勝山市",66
"鯖江市",1
"あわら市",44
"越前市",55
"坂井市",1
"吉田郡 永平寺町",1
"今立郡 池田町",2
"南条郡 南越前町",22
"丹生郡 越前町",55
"三方郡 美浜町",66
"大飯郡 高浜町",77
"大飯郡 おおい町",66
"三方上中郡 若狭町",99
RStudioでツバメの巣数で色分けしてみる
# データの読み込み
setwd("your_path")
tubame_su <- read.csv("tubame_su.csv")
#データの統合
fukui_data <- fukui %>%
left_join(tubame_su, by = "city")
# 地図上にツバメの巣の数を色分けして表示
ggplot(data = fukui_data) +
geom_sf(aes(fill = nest_count), color = "white") +
scale_fill_viridis_c() +
theme_minimal(base_family = "HiraKakuPro-W3") +
labs(title = "福井県の市町村別ツバメの巣の数",
fill = "巣の数")
割に簡単でした。chatGPTに聞いて作りました。chatGPTで聞けばやはり効率は上がります。
以上です。