if(!require(tidyverse)) install.packages("tidyverse") #for data wrangling etc
## Warning: package 'tibble' was built under R version 4.0.3
if(!require(ggthemes)) install.packages("ggthemes") #add-on library for ggplot2
## Warning: package 'ggthemes' was built under R version 4.0.3
if(!require(RColorBrewer)) install.packages("RColorBrewer") #contains lots of different colour palettes
if(!require(cowplot)) install.packages("cowplot") #for adding theme
The persistence of Australian terrestrial and aquatic functional groups was evaluated by experts against three levels of threat intensity. This code produces the probability of persistence for each functional group. Specifically, the code:
The code uses a FOR loop to produce a table of the following set of descriptive statistics for each taxonomic group (‘Category’), further divided into functional groups (‘Group’), for each of three threat levels; high (‘L1’), medium (‘L2’), and low (‘L3’):
rm(list=ls()) #removes all data in global environment
data = read_csv('../data/Data_Table_2_Persistence_Data_Aquatic.csv', trim_ws=TRUE)
##
## -- Column specification --------------------------------------------------------
## cols(
## Expert_ID = col_double(),
## Category = col_character(),
## Group = col_character(),
## Threat = col_character(),
## Level = col_double(),
## Estimate = col_character(),
## Persistence = col_double(),
## Confidence = col_double(),
## Persistence_fit = col_double(),
## Confidence_req = col_double()
## )
glimpse(data)
## Rows: 4,914
## Columns: 10
## $ Expert_ID <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
## $ Category <chr> "Fish", "Fish", "Fish", "Fish", "Fish", "Fish", "Fi...
## $ Group <chr> "F01", "F01", "F01", "F02", "F02", "F02", "F03", "F...
## $ Threat <chr> "Altered flow regime", "Altered flow regime", "Alte...
## $ Level <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
## $ Estimate <chr> "Upper", "Best", "Lower", "Upper", "Best", "Lower",...
## $ Persistence <dbl> 1.0, 0.8, 0.5, 1.0, 0.8, 0.5, 1.0, 0.8, 0.5, 1.0, 0...
## $ Confidence <dbl> 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,...
## $ Persistence_fit <dbl> 1.000, 0.800, 0.457, 1.000, 0.800, 0.457, 1.000, 0....
## $ Confidence_req <dbl> 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,...
data$Level = ordered(data$Level, levels = c("1","2","3"))
levels(data$Level) = c("Low","Medium","High")
head(data) #Have a look at the first six lines
summary(data$Group)
## Length Class Mode
## 4914 character character
#FOR LOOP FOR AQUATIC GROUPS
for(i in unique(data$Threat)) {
data.fish = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Fish")
ggfig = ggplot(data.fish, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Fish -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1.0), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Aquatic/Fish/Fish",i,".pdf",sep=""),ggfig,width=7,height=5,dpi=300)
data.birds = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Waterbirds")
ggfig = ggplot(data.birds, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Waterbirds -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Aquatic/Waterbirds/Waterbirds",i,".pdf",sep=""),ggfig,width=7,height=5,dpi=300)
data.turtles = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Turtles")
ggfig = ggplot(data.turtles, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Turtles -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Aquatic/Turtles/Turtles",i,".pdf",sep=""),ggfig,width=7,height=5,dpi=300)
}
rm(list=ls()) #removes all data in global environment
data = read_csv('../data/Data_Table_1_Persistence_Data_Terrestrial.csv', trim_ws=TRUE)
##
## -- Column specification --------------------------------------------------------
## cols(
## Expert_ID = col_double(),
## Category = col_character(),
## Group = col_character(),
## Threat = col_character(),
## Level = col_double(),
## Estimate = col_character(),
## Persistence = col_double(),
## Confidence = col_double(),
## Persistence_fit = col_double(),
## Confidence_req = col_double()
## )
glimpse(data)
## Rows: 66,033
## Columns: 10
## $ Expert_ID <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
## $ Category <chr> "Mammals", "Mammals", "Mammals", "Mammals", "Mammal...
## $ Group <chr> "M01", "M01", "M01", "M01", "M01", "M01", "M01", "M...
## $ Threat <chr> "Fire", "Fire", "Fire", "Fire", "Fire", "Fire", "Fi...
## $ Level <dbl> 1, 1, 1, 2, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3, 3, ...
## $ Estimate <chr> "Upper", "Best", "Lower", "Upper", "Best", "Lower",...
## $ Persistence <dbl> 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 1.0, 0.5, 0.0, 1.0, 1...
## $ Confidence <dbl> 90, 90, 90, 60, 60, 60, 60, 60, 60, 90, 90, 90, 60,...
## $ Persistence_fit <dbl> 1.000, 1.000, 1.000, 1.000, 1.000, 0.333, 1.000, 0....
## $ Confidence_req <dbl> 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,...
data$Level = ordered(data$Level, levels = c("1","2","3"))
levels(data$Level) = c("Low","Medium","High")
head(data) #Have a look at the first six lines
summary(data$Group)
## Length Class Mode
## 66033 character character
#FOR LOOP FOR TERRESTRIAL GROUPS 1 (REPTILES AND VEGETATION)
for(i in unique(data$Threat)) {
data.reptiles = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Reptiles")
ggfig = ggplot(data.reptiles, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Reptiles -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1.0), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Terrestrial/Reptiles/Reptiles",i,".pdf",sep=""),ggfig,width=7,height=10,dpi=300)
data.veg = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Vegetation")
ggfig = ggplot(data.veg, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Vegetation -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Terrestrial/Vegetation/Vegetation",i,".pdf",sep=""),ggfig,width=7,height=10,dpi=300)
}
#FOR LOOP FOR TERRESTRIAL GROUPS 2 (MAMMALS, AMPHIBIANS AND BIRDS)
for(i in unique(data$Threat)) {
data.mammals = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Mammals")
ggfig = ggplot(data.mammals, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Mammals -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1.0), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Terrestrial/Mammals/Mammals",i,".pdf",sep=""),ggfig,width=7,height=10,dpi=300)
data.amphibians = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Amphibians")
ggfig = ggplot(data.amphibians, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Amphibians -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Terrestrial/Amphibians/Amphibians",i,".pdf",sep=""),ggfig,width=7,height=5,dpi=300)
data.birds = data %>%
filter(Threat==as.character(i),Estimate=="Best",Category=="Birds")
ggfig = ggplot(data.birds, aes(factor(Level),as.numeric(as.character(Persistence)))) + #
ggtitle(paste("Birds -",i,sep=" ")) +
geom_boxplot(lwd=0.5,fatten=1,outlier.size=1,aes(fill=factor(Level))) + #aes(fill=factor(Year)),position=position_dodge(0.8)
scale_fill_manual(values = c("Low"="Yellow","Medium"="Orange","High"="Red")) +
facet_wrap(~factor(Group),ncol = 4,strip.position = "right") + #ncol = number of columns
scale_y_continuous("Probability of persistence",limits=c(0.0,1.05),expand = c(0, 0)) + # breaks = brks,labels=lbls,breaks=c(0,0.2,0.4,0.6,0.8,1),
scale_x_discrete("Threat level") +
coord_fixed(ratio=3.5) +
theme_classic() +
labs(fill="Threat level") +
theme(plot.title = element_text(size=20, face="bold"),#<ELEMENT>Title
legend.position = "top", #<ELEMENT>Legend
legend.text = element_text(size=10),
legend.title = element_text(size=12),
axis.line = element_line(colour = 'black', size = 1), #<ELEMENT>Axes
axis.ticks = element_line(colour = 'black', size = 1),
axis.text.y = element_text(colour = 'black', size = 10), #hjust = -0.2 etc to move left
axis.text.x = element_text(colour = 'black', size = 10, angle = 90, vjust = 0.15,hjust=1), #vjust = -0.2 etc to move right
axis.title.y = element_text(colour = 'black', size = 15, margin = margin(r = 10)),
axis.title.x = element_text(colour = 'black', size = 15, margin = margin(t = 10)),
strip.background = element_rect(colour = "white"), #<ELEMENT>Facets
strip.text.y = element_text(size = 10, colour = 'black',angle = 0,vjust=1.0),
panel.spacing = unit(2,"lines"),
strip.placement = "inside")
ggsave(filename = paste("../docs/Terrestrial/Birds/Birds",i,".pdf",sep=""),ggfig,width=7,height=10,dpi=300)
}