######################################## # Lineage and within SNP count barplot ######################################## lin_count_bp <- function( lf_data , x_categ = "" , y_count = "" , bar_fill_categ = "" , display_label_col = "" , bar_stat_stype = "identity" , x_lab_angle = 90 , d_lab_size = 5 , d_lab_hjust = 0.5 , d_lab_vjust = 0.5 , d_lab_col = "black" , my_xats = 20 # x axis text size , my_yats = 20 # y axis text size , my_xals = 22 # x axis label size , my_yals = 22 # y axis label size , my_lls = 22 # legend label size , bar_col_labels = c("Mutations", "Total Samples") , bar_col_values = c("grey50", "gray75") , bar_leg_name = "" , leg_location = "top" , y_log10 = FALSE , y_scale_percent = FALSE , y_label = c("Count", "SNP diversity") ) { g = ggplot(lf_data , aes( x = factor( eval(parse(text = x_categ)), ordered = T ) , y = eval(parse(text = y_count)) , fill = eval(parse(text = bar_fill_categ)) ) ) OutPlot = g + geom_bar( stat = bar_stat_stype , position = position_stack(reverse = TRUE) #, alpha = 1 #, colour = "grey75" ) + theme(axis.text.x = element_text(size = my_xats , angle = x_lab_angle) , axis.text.y = element_text(size = my_yats , angle = 90 , hjust = 1 , vjust = 0) , axis.title.x = element_text(size = my_xals , colour = "black") , axis.title.y = element_text(size = my_yals , colour = "black") , legend.position = leg_location , legend.text = element_text(size = my_lls)) + geom_label(aes(label = eval(parse(text = display_label_col))) , size = d_lab_size , hjust = d_lab_hjust , vjust = d_lab_vjust , colour = d_lab_col , show.legend = FALSE #, check_overlap = TRUE , position = position_stack(reverse = T)) + scale_fill_manual(values = bar_col_values , name = bar_leg_name , labels = bar_col_labels) + labs(title = "" , x = "" , y = y_label , colour = "black") if (y_log10){ OutPlot = OutPlot + scale_y_continuous(trans = "log10" , labels = trans_format("log10", math_format(10^.x) ) ) } if (y_scale_percent){ OutPlot = OutPlot + #scale_y_continuous(labels = scales::percent_format(accuracy = 1)) + scale_y_continuous(labels = scales::percent) + labs(title = "" , x = "" , y = y_label , colour = "black") } return(OutPlot) } ############################ # Lineage diversity barplot ############################ # lin_diversity_bp <- function( wf_data # , x_categ = "sel_lineages" # , y_count = "snp_diversity" # , bar_stat_stype = "identity" # , display_label_col = "snp_diversity_f" # , x_lab_angle = 90 # , d_lab_size = 5 # , d_lab_hjust = 0.5 # , d_lab_vjust = 0.5 # , d_lab_col = "black" # , my_xats = 20 # x axis text size # , my_yats = 20 # y axis text size # , my_xals = 22 # x axis label size # , my_yals = 22 # y axis label size # , my_lls = 22 # legend label size # , bar_leg_name = "" # , leg_location = "top" # , y_scale_percent = TRUE # , y_label = "SNP diversity" ) # # { # g = ggplot(wf_data # , aes( x = factor( eval(parse(text = x_categ)), ordered = T ) # , y = eval(parse(text = y_count)) ) ) # # OutPlot = g + geom_bar( stat = bar_stat_stype # , position = position_stack(reverse = TRUE) # ) + # # theme(axis.text.x = element_text(size = my_xats # , angle = x_lab_angle) # , axis.text.y = element_text(size = my_yats # , angle = 90 # , hjust = 1 # , vjust = 0) # , axis.title.x = element_text(size = my_xals # , colour = "black") # , axis.title.y = element_text(size = my_yals # , colour = "black") # , legend.position = leg_location # , legend.text = element_text(size = my_lls)) + # # geom_label(aes(label = eval(parse(text = display_label_col))) # , size = d_lab_size # , hjust = d_lab_hjust # , vjust = d_lab_vjust # , colour = d_lab_col # , show.legend = FALSE # #, check_overlap = TRUE # , position = position_stack(reverse = T)) # # return(OutPlot) # # if (y_scale_percent){ # # OutPlot = OutPlot + # scale_y_continuous(labels = scales::percent_format(accuracy = 1)) + # labs(title = "" # , x = "" # , y = y_label # , colour = "black") # # return(OutPlot) # } # return(OutPlot) # } # ggp <- ggplot(bar_sel, aes(sel_lineages, snp_diversity)) + # geom_bar(stat = "identity") # ggp + scale_y_continuous(labels = scales::percent_format(accuracy = 1) # #, limits = c(0,1) # , breaks = seq(0, 30, 5) # )