使用R和GBIF制作物种全球分布图的完整指南
创作时间:
作者:
@小白创作中心
使用R和GBIF制作物种全球分布图的完整指南
引用
CSDN
1.
https://blog.csdn.net/weixin_44562189/article/details/133746409
本文将介绍如何使用R语言和GBIF(全球生物多样性信息设施)数据来制作物种在全球范围内的分布图。通过本教程,读者将学习到如何获取物种分布数据、处理数据以及使用ggplot2包绘制美观的物种分布图。
一、准备工作
要获得特定物种的世界分布图,需要知道该物种的学名,以及实验室已有的采集数据(因为GBIF上的数据可能不够全面)。
二、R脚本实现
使用以下R脚本(my R with GBIF.R)来下载GBIF中的物种信息并绘制全球分布图。请确保已经安装了所需的R包。
# 此代码用于下载GBIF中物种信息以及在绘制在全球范围分布图,全球年均气温图自己后期制作
# 每次需要改开始的两个物种名,保存数据的文件名,这边更改了R中可以自动更新
setwd(dir="E:/R and GBIF/TEST3") # 设置工作目录#首先需要这个文件夹存在才能设置这个目录
# 调用R包
library(rgbif)
library(dplyr)
library(raster)
library(maptools)
library(CoordinateCleaner)
library(ggmap)
library(ggplot2)
library(maps)
key <- name_suggest(q="Umbilicaria deusta", rank='species')$data$key
key#物种识别号#不同物种需要更改这里的物种名
occ_count(taxonKey=key, georeferenced=TRUE, basisOfRecord= "PRESERVED_SPECIMEN")#GBIF中可查到的记录数
data <- occ_search(scientificName = "Umbilicaria deusta", limit= 1000, hasCoordinate = TRUE, basisOfRecord= "PRESERVED_SPECIMEN")#下载数据#不同物种需要更改这里的物种名
str(data$data)#展示数据结构
names(data$data)#检查数据的列名
head(data$data[,c("countryCode","country")])
datasel<-data$data %>%
dplyr::select(species, decimalLongitude,
decimalLatitude,country,coordinateUncertaintyInMeters) %>%
rename(Species = species, Long = decimalLongitude, Lat =
decimalLatitude, Uncertain=coordinateUncertaintyInMeters) %>%
mutate (Species = as.factor(Species), country=
as.factor(country))#生成数据框并改列名#这里有可能会报错,报XX错误就把XX删掉就行
datasel
datasel %>% filter(Long==0, Lat==0)# 统计经纬度等于零的记录,用于检查错误数据
datasel_cleanF <- datasel %>% distinct(Long, Lat,.keep_all=T)#清除重复数据
str(datasel_cleanF)
write.table(datasel_cleanF, file = "UL_distribution.xlsx",quote = F, sep = "\\t",row.names = F)#保存数据至Excel表#这个命令就会在之前设置的那个目录下生成excel表
world_map <- map_data("world") # maps包map_data()中获取世界地图数据
world_map
p1 <- ggplot()+
geom_polygon(data = world_map, aes(x = long, y = lat,group = group),
fill='white',colour="black",size=0.25)+
geom_point(data = X22species,aes(x = Long, y = Lat,fill = Species),
alpha = 0.5,shape = 21,size = 3) #这个size大小可以自己调整,合适为好
#这里的data=XX就是我们要作图的数据表
#+geom_text(data=datasel_cleanF,aes(x=Long, y=Lat, label=Species),vjust=1.5,colour="black",size=3) # 添加物种标签
#+geom_label(data = world_map,aes(x = long, y = lat, label = region),fill='orange',colour="black",size=3) # 给地图安区域添加地域标签
p1#输出图片手动下载一下把(我怕又出错)
三、运行注意事项
如果是单个物种作图,没有本地数据,直接用生成的
UL_distribution.xlsx
数据打点在地图上即可,红色点。如果是多个物种作图,再结合本地数据,需要把不同物种的表汇总在一起,格式如下:
- 最后生成的图片在选择点的大小和导出图片大小时可以多尝试调整一下,调一个最合适的,后期也可以再AI调整一下坐标大小以及图例大小
热门推荐
威海三大离岛游玩全攻略:刘公岛、鸡鸣岛、海驴岛
威海两大离岛度假攻略:刘公岛的历史回响与鸡鸣岛的海岛生活
糖尿病患者的“餐桌良药”:五类食材助控血糖
社保卡VS医保卡,你真的用对了吗?
90%病毒转阴率!中国原创乙肝新药在国际会议发布最新成果
春游斯里兰卡康提:4大景点详解,从植物园到古城
石墨烯产业:中国产能全球第一,正谋求高端突破
张红甫教你做蒜香椒盐大虾美味到停不下来
世界上最笨的动物有哪些(袋熊等)
佛教秘而不宣的修身方法:“自性五分法身香”!应该怎么修?
《战争与和平》:经典永流传
2024世界野生动植物日:数字创新助力濒危物种保护
发动机推力测量神器,了解一下?
拉结筋施工必读:长度规范、设置方式与抗震要求
气候变化下的濒危物种保卫战
重阳诗词里的中国:登高思亲,孝道永传
航空发动机推力单位换算指南:千牛与公斤力的关系
泰国香米凭长粒晶莹口感走红全球
长江江豚、中华鲟、长江鲟:保护长江濒危物种迫在眉睫
维生素C能治牙龈肿痛吗?专家解析正确治疗方案
专家提醒:冬季是牙龈问题高发期,这样做能有效预防
猫咪比狗狗聪明吗?科学家终于有了答案!
涠洲岛攻略:火山景观、浪漫海滩与百年教堂
虾的诱惑:吃货们不可错过的美食秘籍!
研究证实:西兰花豆芽可有效控制尿酸水平
从草药漱口到穴位按摩:中医防治牙龈肿痛全攻略
F-15战斗机推力揭秘:129千牛意味着什么?
西蓝花含草酸会影响尿酸代谢,高尿酸人群需适量食用
<仙症>王战团:精神自由的当代寓言
浅谈中国古建筑须弥座的历史与作用