本研究室では、野生動物の糞便の採取も行っています。論文を作成する際には、サンプリング場所を図として載せることが必要になる場合もあります。
そこで、今回はRでできるだけ見栄えよく、サンプリング場所を作図する方法を記載します。
サンプリング場所を記載したcsvファイルの作成
何かしらのサンプルを採取する場合、異なる場所・時期で行われると思います。
今回は例として適当に作成したデータを用いますが、例えば野鳥の糞便を季節ごとに採取し、鳥インフルエンザウイルスの有無を調べたデータだとしましょう。
ファイルの名前は[Map_01.csv]とします。
記載例
Season | lat | lng | Virus |
---|---|---|---|
Spring | 34.27007 | 133.9251 | No |
Summer | 34.25747 | 133.9271 | No |
Autum | 34.26700 | 133.9251 | Yes |
Winter | 34.25213 | 133.9189 | Yes |
Spring | 34.25343 | 133.9377 | No |
今回は適当に80か所Google Mapで位置情報を調べました。
実際のサンプリング時にはスマートフォンで位置情報を記録していくと良いでしょう。
作図の作業
作業ディレクトリをMap_01.csvがあるところに指定します。
ggplot2やjpndistrictのインストールがまだの場合は、インストールをしてください。
install.packages("ggplot2")
install.packages("remotes")
remotes::install_github("uribo/jpndistrict")
library(ggplot2)
library(jpndistrict)
kagawa=jpn_pref(37)
p=ggplot(kagawa)+geom_sf()+coord_sf()+theme_bw()
plot(p)
ここまでで下のような図ができます。
この地図にサンプリング場所をプロットしていきます。
df=read.csv("Map_01.csv")
p2=p+geom_point(aes(x=lng,y=lat, color=Season, shape=Virus), data=df, size=7)+theme(text=element_text(size=35))+scale_shape_manual(values=c(20,4))+theme(legend.position="top")+scale_color_discrete(limits=c("Spring","Summer","Autum","Winter"))+guides(color=guide_legend(order =1),shape=guide_legend(order=2))
plot(p2)
そのまま入力していくと、季節の凡例がアルファベット順になり、秋から始まってしまいます。春夏秋冬と並べ替えるためにはlimits=c()で指定する必要があります。
この他、Leafletを使えば、Google Mapのような地図を自作することも可能です。
Install.packages("leaflet")
library(leaflet)
pal1=colorFactor(palette = "YlOrRd", domain=df$Virus)
leaflet(df) %>%
+ addTiles() %>%
+ addCircleMarkers(~lng, ~lat, color=~pal1(Virus), fillOpacity = 1, stroke=F)
出来上がった地図はこのようになります。