R/barRA.R

Defines functions barRA

Documented in barRA

################################
#### BAR RELATIVE ABUNDANCE ####
################################

barRA <- function(meta_data, species_names = NA, default_theme = TRUE, trans_y_axis = c("sqrt", "log10")) {

  trans_y_axis <- match.arg(trans_y_axis)

  ### DATA TABLE FOR PLOT
  dtst <- dplyr::left_join(meta_data[["AODP_match"]], meta_data[["Metadata"]], by = "ID") %>%
    dplyr::left_join(meta_data[["Sample_totals"]], by = "ID") %>%
    dplyr::group_by(Species, ID) %>%
    dplyr::mutate(seq_spp = length(unique(seq_ID)), value = (length(unique(seq_ID)) / (unique(s_num)))) %>%
    dplyr::filter(Province != "World")


  # Filtering by species
  if(!is.na(species_names)) {
    #dtst <- dplyr::filter(dtst, Species == species_names)
    dtst <- dtst[base::grep(species_names, dtst$Species),]
  }
  if(base::nrow(dtst) == 0) {
    stop("Provided sprcies name does not exist in data set! \n
       Try encrease 'species_number' parameter in metaData.")
  }

  map_dots <- dtst %>%
    dplyr::group_by(Province,City,Substrate) %>%
    dplyr::summarise(value = (mean(value)))

  # Plot Colours
  clr = c("#771155", "#AA4488", "#CC99BB", "#114477", "#4477AA", "#77AADD", "#117777", "#44AAAA", "#77CCCC", "#117744", "#44AA77", "#88CCAA", "#777711", "#AAAA44", "#DDDD77", "#774411", "#AA7744", "#DDAA77", "#771122", "#AA4455", "#DD7788")
  clr = colorRampPalette(clr)(length(unique(dtst$Substrate)))
  names(clr) = sort(unique(dtst$Substrate))

  bp <- ggplot(map_dots, aes(City, value, fill = Substrate)) +
    geom_col(colour = "black", size = 0.2) +
    facet_grid(.~Province,  scales = "free", space = "free") +
    coord_trans(y = trans_y_axis)

  if(default_theme == TRUE) {
   bp <- bp + labs(x = NULL, y = "√ % per sample") +
    scale_fill_manual(values = clr, guide = guide_legend(title = "Substrate")) +
    theme(panel.background=element_rect(fill="white"),
          legend.key = element_rect(fill = "white", color = "white"),
          #plot.title = element_text(lineheight=.8, face="bold"),
          #title=element_text(size=15,colour="black"),
          strip.background = element_rect(colour = "white", fill = "white"),
          strip.text = element_text(size = 16, face = "bold", hjust = 0.5),
          #strip.background = element_rect(colour="black", fill="#ffffff"),
          #axis.title.y=element_text(size=18,colour="black", angle = 90),
          axis.title.x=element_text(size=16,colour="black"),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
          axis.line = element_line(colour="black"),
          text=element_text(size=14,colour="black"),
          panel.grid.major=element_line(size=0.5,colour="gray80",linetype = "dotted"),
          panel.grid.minor=element_line(size=0.5,colour="gray80",linetype = "dotted"),
          panel.border = element_rect(fill = NA, colour = "grey"),
          #legend.position=c(1.2,0.7),
          legend.position = "right",
          legend.text = element_text(size = 12),
          axis.text = element_text(size = 14, colour = "black", face = "italic"))
  }

  return(bp)
}
anabeloff/AODPvisual documentation built on May 16, 2019, 6:56 p.m.