跟着Nature Communication学作图:R语言ggplot2画世界地图展示采样地点
论文
Structure and function of the soil microbiome underlying N2O emissions from global wetlands
https://www.nature.com/articles/s41467-022-29161-3#Sec21
没有找到论文的代码,但是论文的数据是公开的,可以用论文中的数据复现一下论文中的结果,今天的推文试着复现一下论文中的figure1a
世界地图的数据
ggplot2自带了一份地图数据,可以直接使用,这里需要注意的是我们画的是没有国家边界的世界地图,如果是带有国家边界的地图,使用数据的时候需要小心。
ggplot2画地图
library(ggplot2)
world<-map_data("world")
ggplot() +
geom_polygon(data=world,aes(x=long,y=lat,group=group),
fill="#dedede")+
theme_bw()+
scale_y_continuous(expand = expansion(mult=c(0,0)))+
scale_x_continuous(expand = expansion(add=c(0,0))) -> world.map
world.map
采样地点部分数据
读取数据
library(readxl)
dat01<-read_excel("data/20220603/NC/41467_2022_29161_MOESM12_ESM.xlsx",
sheet = "Fig.1a")
head(dat01)
给数据集增加新的一列
dat01 %>%
mutate(n2o=case_when(
N2O<10 ~ "-2..10",
N2O >= 10 & N2O < 100 ~ "10..100",
N2O >= 100 ~ "100..500"
)) -> new.dat01
作图代码
library(ggstar)
world.map +
geom_star(data=dat01,
aes(x=Longitude,y=Latitude,
starshape=Land_use,
color=`AamoA/nir`,
fill=`AamoA/nir`),
size=4,
position = position_jitter(width = 10,
height = 10,
seed = 1234))+
scale_starshape_manual(values=c(11:15,20,9))+
scale_fill_gradient2(low = "#429eb3",
mid = "#e9c922",
high = "#f22101",
midpoint = 0.5)+
scale_color_gradient2(low = "#429eb3",
mid = "#e9c922",
high = "#f22101",
midpoint = 0.5) -> world.map.01
world.map.01 +
geom_point(data=new.dat01,
aes(x=Longitude,y=Latitude,
shape=n2o),
position = position_jitter(width = 10,
height = 10,
seed = 1234))+
scale_shape_manual(values = c(3,4,8),
name= expression("A^2"))+
theme(#legend.position = c(0.5,0.5),
legend.background = element_rect(fill = "transparent"))+
labs(x="Longitude",y="Latitude")
这里遇到两个问题
这连个问题目前的解决办法是出图后编辑图片
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!
共有 0 条评论