###Revealing the Sustainability of Novel Food System Technologies: A Systematic Review

##Heatmap Sustainability Indicators 

#load libariers 
library (ggplot2)
library(reshape2)
library(gridExtra)
library(egg)


datadir<-"C:/Users/..."
data_heatmap<-read.csv2(file=paste0(datadir,"Heatmap_data_new.csv"))
test_data <- melt(data_heatmap)
test_data$new_cat <- factor(test_data$Sus_category, levels =c("Environmental", "Economic","Social"))

myplot = ggplot(test_data, aes(x=Sustainability_indicator, y=variable, fill = value)) + 
  geom_raster() + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1), # lables vertical
        strip.text.y = element_blank()) +  #remove facet bar on y 
  scale_fill_gradient(low = "darkblue", high = "lightblue") +
  scale_fill_gradient(low = "white", high = "#38761d") +
  scale_x_discrete(position = "top")+ 
  facet_grid(cols = vars(test_data$new_cat), switch = "x", scales = "free_x", space="free_x") + 
  theme(axis.text.x = element_text(angle = 45,hjust = -0.1))
myplot +labs (fill="No.of studies",y= element_blank(), x="Sustainability Indicator")+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.border = element_rect(colour = "black",fill=NA, size=1))

##Stakebars Sustainability Performance 

#load libraries
library(ggplot2)
library(reshape2)
library(cowplot)

data <- read.csv2(file = paste0("PBA_ALL_140222.csv"))
data2 <- read.csv2(file = paste0(datadir,"VF_08012022.csv"))

#define variables
environmental_vars <-c ("GHGe","Land Use","Water Use","Biodiversity Loss", "Particulate Matter", "Eutrophication", "Acidification", "Ecotoxicity","HTP")
social_vars <-c ("Consumer Acceptance","WTP", "WTB","Price", "Energy Use")
nutritional_vars <-c("Protein","Sugars","Sat. Fat", "Vitamines","Calcium", "Kcal", "Total Nutritional Values", "Sodium")
sustainability_vars <-c ("GHGe","Land Use", "Water Use","Water Depletion", "Eutrophication", "Ecotoxicity","Fossil Fuel Depletion","Energy Use", "Financial Profit")

df_environmental <- vector()
for (i in environmental_vars){
  data_vars <- data[data$Indicator.type == i,]
  Lower <- nrow(data_vars[data_vars$Lower == 1,])/nrow(data_vars)*100
  Similar <- nrow(data_vars[data_vars$Similar == 1,])/nrow(data_vars)*100
  Higher <- nrow(data_vars[data_vars$Higher == 1,])/nrow(data_vars)*100
  var.P <- data.frame(Lower,Similar,Higher)
  var.P$indicator <- i
  #row.names(var.P) <- i
  df_environmental <- rbind(df_environmental,var.P)
}

datm <- melt(df_environmental)

p_environmental <- ggplot(datm, aes(x=indicator,y= value, fill = variable)) +
  geom_bar(position = "fill",stat = "identity")+  
  coord_flip() + scale_fill_manual(values = c("#990000","#ffd966","#38761d"))
p_environmental

p_environmental <- p_environmental +labs(title="Environmental Performance PBA",
                                         x ="", y = "Level of agreement", fill="Performance")+
  theme(plot.title=element_text(size=11),
        plot.subtitle=element_text(size=10, hjust=0.5, face="italic", color="black"))+
  theme(panel.background = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        axis.line = element_line(colour = "black"),
        panel.border = element_rect(colour = "black", fill=NA, size=1))


df_nutritional <- vector()
for (i in nutritional_vars){
  data_vars <- data[data$Indicator.type == i,]
  Lower <- nrow(data_vars[data_vars$Lower == 1,])/nrow(data_vars)*100
  Similar <- nrow(data_vars[data_vars$Similar == 1,])/nrow(data_vars)*100
  Higher <- nrow(data_vars[data_vars$Higher == 1,])/nrow(data_vars)*100
  var.P <- data.frame(Lower,Similar,Higher)
  var.P$indicator <- i
  #row.names(var.P) <- i
  df_nutritional <- rbind(df_nutritional,var.P)
}

datm <- melt(df_nutritional)

p_nutritional <- ggplot(datm, aes(x=indicator,y = value, fill = variable)) +
  geom_bar(position = "fill",stat = "identity")+  
  coord_flip() + scale_fill_manual(values = c("#990000","#ffd966","#38761d"))
p_nutritional
p_nutritional <- p_nutritional +labs(title="Nutritional Performance PBA",
                                     x ="", y = "Level of agreement", fill="Performance")+
  theme(plot.title=element_text(size=11),
        plot.subtitle=element_text(size=10, hjust=0.5, face="italic", color="black"))+
  theme(panel.background = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        axis.line = element_line(colour = "black"),
        panel.border = element_rect(colour = "black", fill=NA, size=1))

df_social <- vector()
for (i in social_vars){
  data_vars <- data[data$Indicator.type == i,]
  Lower <- nrow(data_vars[data_vars$Lower == 1,])/nrow(data_vars)*100
  Similar <- nrow(data_vars[data_vars$Similar == 1,])/nrow(data_vars)*100
  Higher <- nrow(data_vars[data_vars$Higher == 1,])/nrow(data_vars)*100
  var.P <- data.frame(Lower,Similar,Higher)
  var.P$indicator <- i
  #row.names(var.P) <- i
  df_social <- rbind(df_social,var.P)
}

datm <- melt(df_social)

p_social <- ggplot(datm, aes(x=indicator,y= value, fill = variable)) +
  geom_bar(position = "fill",stat = "identity")+  
  coord_flip() + scale_fill_manual(values = c("#990000","#ffd966","#38761d"))
p_social
p_social <- p_social +labs(title="Social Economic Performance PBA",
                           x ="", y = "Level of agreement", fill="Performance")+
  theme(plot.title=element_text(size=11),
        plot.subtitle=element_text(size=10, hjust=0.5, face="italic", color="black"))+
  theme(panel.background = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        axis.line = element_line(colour = "black"),
        panel.border = element_rect(colour = "black", fill=NA, size=1))


df_sustainability <- vector()
for (i in sustainability_vars){
  data2_vars <- data2[data2$Indicator.type == i,]
  Lower <- nrow(data2_vars[data2_vars$Lower == 1,])/nrow(data2_vars)*100
  Similar <- nrow(data2_vars[data2_vars$Similar == 1,])/nrow(data2_vars)*100
  Higher <- nrow(data2_vars[data2_vars$Higher == 1,])/nrow(data2_vars)*100
  var.P <- data.frame(Lower,Similar,Higher)
  var.P$indicator <- i
  #row.names(var.P) <- i
  df_sustainability <- rbind(df_sustainability,var.P)
}

datm <- melt(df_sustainability)

p_sustainability <- ggplot(datm, aes(x=indicator,y= value, fill = variable)) +
  geom_bar(position = "fill",stat = "identity")+  
  coord_flip() + scale_fill_manual(values = c("#990000","#ffd966","#38761d"))
p_sustainability
p_sustainability <- p_sustainability +labs(title="Performance Vertical Farming", fill="Performance", 
                                           x ="", y = "Level of agreement")+
  theme(plot.title=element_text(size=11),
        plot.subtitle=element_text(size=10, hjust=0.5, face="italic", color="black"))+
  theme(panel.background = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        axis.line = element_line(colour = "black"),
        panel.border = element_rect(colour = "black", fill=NA, size=1))

#Combine in one plot
plot_grid(p_environmental,p_nutritional,p_social,p_sustainability,             
          ncol = 2,
          align = "v", labels="AUTO")



