论文
Meta-analysis reveals less sensitivity of non-native animals than natives to extreme weather worldwide
论文中提供作图用到的原始数据,我们可以试着复现一下论文中的图。今天的推文试着复现一下论文中的figure1
先画一个地图
library(tidyverse)
library(readxl)
world.dat<-map_data("world")
ggplot() +
geom_polygon(data=world.dat,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)))+
theme(panel.border = element_blank(),
panel.grid = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank())+
labs(x=NULL,y=NULL)-> world.map
world.map
figure1a代码添加采样地点
fig1a.dat<-read_excel("data/20231127/41559_2023_2235_MOESM8_ESM.xlsx",
sheet = "Fig1A")
fig1a.dat
world.map+
geom_point(data=fig1a.dat,aes(x=Longitude,y=Latitude,color=sufferedECE))+
scale_color_manual(values = c("Cold"="#b7f8ff",
"Drought"="#ae965b",
"Flood"="#4d4dff",
"Heatwave"="#ff6f6f",
"Storm"="#ffa64d"),
name="EWEs")+
guides(color=guide_legend(override.aes = list(size=5)))+
theme(legend.position = c(0.1,0.3))
figure1b 代码和1a基本一致
fig1b.dat<-read_excel("data/20231127/41559_2023_2235_MOESM8_ESM.xlsx",
sheet = "Fig1B")
fig1b.dat
world.map+
geom_point(data=fig1b.dat,aes(x=Longitude,y=Latitude,color=sufferedECE))+
scale_color_manual(values = c("Cold"="#b7f8ff",
"Drought"="#ae965b",
"Flood"="#4d4dff",
"Heatwave"="#ff6f6f",
"Storm"="#ffa64d"),
name="EWEs")+
guides(color=guide_legend(override.aes = list(size=5)))+
theme(legend.position = "none")
figure1c d
fig1c.dat<-read_excel("data/20231127/41559_2023_2235_MOESM8_ESM.xlsx",
sheet = "Fig1C") %>%
mutate(sufferedECE=factor(sufferedECE,levels = c("Heatwave","Cold","Storm","Flood","Drought")))
fig1c.dat
pc<-ggplot(data=fig1c.dat,aes(x=sufferedECE,y=number_effct_sizes))+
geom_col(aes(fill=sufferedECE))+
scale_fill_manual(values = c("Cold"="#b7f8ff",
"Drought"="#ae965b",
"Flood"="#4d4dff",
"Heatwave"="#ff6f6f",
"Storm"="#ffa64d"),
name="EWEs")+
theme_bw()+
theme(legend.position = "none",
panel.border = element_blank(),
panel.grid = element_blank(),
axis.line = element_line(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())+
scale_y_continuous(limits = c(0,500),
breaks = seq(0,500,by=100),
labels = c(0,100,"",300,"",500),
expand = expansion(mult = c(0,0)))+
geom_text(aes(label=c(84,47,31,24,21)),vjust=-1)+
annotate(geom = "text",x=2,y=350,label="Number of studies",hjust=0)+
annotate(geom = "segment",x=2,y=330,xend = 2,yend=250,
arrow=arrow(angle = 20,type="closed",length = unit(3,'mm')))+
labs(x=NULL,y="Number of sampleneffect sizes")
pc
fig1d.dat<-read_excel("data/20231127/41559_2023_2235_MOESM8_ESM.xlsx",
sheet = "Fig1D") %>%
mutate(sufferedECE=factor(sufferedECE,levels = c("Heatwave","Cold","Storm","Flood","Drought")))
fig1d.dat
pd<-ggplot(data=fig1d.dat,aes(x=sufferedECE,y=number_effct_sizes))+
geom_col(aes(fill=sufferedECE))+
scale_fill_manual(values = c("Cold"="#b7f8ff",
"Drought"="#ae965b",
"Flood"="#4d4dff",
"Heatwave"="#ff6f6f",
"Storm"="#ffa64d"),
name="EWEs")+
theme_bw()+
theme(legend.position = "none",
panel.border = element_blank(),
panel.grid = element_blank(),
axis.line = element_line(),
axis.text.x = element_blank(),
axis.ticks.x = element_blank())+
scale_y_continuous(limits = c(0,2000),
breaks = seq(0,2000,by=500),
labels = c(0,500,"",1500,""),
expand = expansion(mult = c(0,0)))+
geom_text(aes(label=c(74,32,129,47,76)),vjust=-1)+
labs(x=NULL,y="Number of sampleneffect sizes")
pd
pc+pd
figure1e
fig1e.dat<-read_excel("data/20231127/41559_2023_2235_MOESM8_ESM.xlsx",
sheet = "Fig1E") %>%
rename("group"="...1") %>%
pivot_longer(!group)
fig1e.dat
pe<-ggplot(data=fig1e.dat,aes(x=name,y=value))+
geom_bar(stat="identity",
aes(fill=group),
position = "dodge")+
theme_bw()+
theme(panel.border = element_blank(),
panel.grid = element_blank(),
axis.line.y = element_line(),
axis.ticks.x = element_blank(),
axis.text.x = element_text(angle=90,hjust=1),
legend.position = c(0.8,0.8))+
scale_y_continuous(limits = c(0,36),
expand = expansion(mult=c(0,0)),
breaks = seq(0,35,by=5),
labels = c(0,5,"",15,"",25,"",35))+
scale_fill_manual(values = c("nonnative_prop"="#7fb3ff",
"native_prop"="#00008a"),
name="",
labels=c("Native","Non-native"))+
labs(x=NULL,y="Proportion of samplen(effect sizes(%)")
pe
5个图组合到一起
part1<-pa+pc+pb+pd+
plot_layout(ncol = 2,nrow=2,widths = c(3,1))
part1/pe+
plot_layout(nrow=2,heights = c(2,1))+
plot_annotation(tag_levels = 'a')
示例数据可以到论文中下载,或者给推文打赏1元获取我整理的示例数据和代码
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/384624.html