GitLab at IIASA

2EBE2EFC-contents 2.5 KiB
Newer Older
Xinxin Yang's avatar
Xinxin Yang committed
# plot the common id over the years

path <- "D:/public/yang/MIND_STEP/new_sample/fadn_data_common_id.xlsx"
sheetsnames <- excel_sheets(path)
length(sheetsnames)
lst <- lapply(1:28, function(i) read_excel(path, sheet = i))
lst_test <- Map(function(x, y) {names(x)[1] <- y; x},
                lst, sheetsnames)

names(lst_test) <- sheetsnames

new_colnames <- c("Years","Num_id")

new_lst_ = lapply(lst_test, setNames, new_colnames)
###
new_lst = new_lst_
for (i in 1:28){
  new_lst[[i]]$Length <- str_count(new_lst[[i]]$Years)
  new_lst[[i]]$group <- cut(new_lst[[i]]$Length, breaks=c(1,10,14,18,25,30,35,40,48,55,58,70,Inf))
  #new_lst[[i]]$group <- cut(new_lst[[i]]$Length, breaks=c(1,10,14,18,25,30,35,40,48,55,58,70,Inf))
}



label_facet <- function(original_var, custom_name){
  lev <- levels(as.factor(original_var))
  #lev <- c()
  lab <- paste0(custom_name, ": ", lev)
  names(lab) <- lev
  return(lab)
}

names <- as_labeller(
  c(`(1,10]` = "2 years", `(14,18]` = "3 years",`(18,25]` = "4 years",
    `(25,30]` = "5 years",`(30,35]` = "6 years", `(35,40]` = "7 years",
    `(40,48]` = "8 years", `(48,55]`= "9 years", `(55,58]` = "10 years",
    `(58,70]`="11 and 12 years", `(70,Inf]` = "more than 12"))

figure <- function(country, df, n){

  p = df %>%
    #ggplot( aes(x = reorder(Years, -Num_id) ,y=Num_id))
    ggplot( aes(x = Years ,y=Num_id))+
    geom_bar( stat="identity", position = position_dodge(width = 0.8),width=0.5, fill = rainbow(n=length(df$Num_id)) ) +
    coord_flip()+
    #labs(title = paste0("Plot of the Number of common ID for country: ", country ), fill = "Years") +
    xlab("Years") +
    ylab("Number of common ID") +
    geom_text(aes(label=Num_id), vjust=0.5, colour="black", size=3.5)+
    theme(axis.text.x=element_text(color = "black", size=6, angle=0, vjust=.8, hjust=0.8)) +
    scale_x_discrete(labels = function(x) str_wrap(x, width = n)) +
    facet_wrap( ~ group, scales="free",
                labeller=names
                  #labeller(group = label_facet(df$group, "grouping"))
                )+
    ggtitle(paste0("Number of common ID for country: ", country )) +
    theme_bw() +
    theme(plot.title = element_text(hjust = 0.5))
  p
}
for (i in 1:28){
  if (sheetsnames[i] =="NED"){
    p <- figure(sheetsnames[i],new_lst[[i]], 35)
  }
  else{
    p <- figure(sheetsnames[i],new_lst[[i]], 20)
  }

  ggsave(plot = p,
         filename = paste0("D:/public/data/fadn/lieferung_20210414/common_id_plots/",sheetsnames[i] ,"_plot.png"),
         width = 18, height = 8)
}

figure("BEL",new_lst$BEL, 35)