LSHTM_analysis/scripts/functions/stability_count_bp.R

51 lines
2 KiB
R

#!/usr/bin/env Rscript
#########################################################
# TASK: function for basic barplot returning stability counts
#########################################################
# load libraries and functions
library(ggplot2)
theme_set(theme_grey())
#==========================================================
# stability_count_bp(): basic barplots for stability counts
# input args
## df containing data to plot
## df column name containing stability outcome
## legend title
## ...opt args
#==========================================================
stability_count_bp <- function(plotdf
, df_colname
, leg_title = "Legend title"
, axis_text_size = 25
, axis_label_size = 22
, leg_text_size = 20
, leg_title_size = 22
, yaxis_title = "Number of nsSNPs"
, bp_plot_title = ""){
OutPlot_count = ggplot(plotdf, aes(x = eval(parse(text = df_colname)))) +
geom_bar(aes(fill = eval(parse(text = df_colname))), show.legend = TRUE) +
geom_label(stat = "count"
, aes(label = ..count..)
, color = "black"
, show.legend = FALSE
, size = 10) +
theme(axis.text.x = element_blank()
, axis.title.x = element_blank()
, axis.title.y = element_text(size = axis_label_size)
, axis.text.y = element_text(size = axis_text_size)
, legend.position = c(0.73,0.8)
, legend.text = element_text(size = leg_text_size)
, legend.title = element_text(size = leg_title_size)
, plot.title = element_text(size = axis_label_size)) +
labs(title = bp_plot_title
, y = yaxis_title) +
scale_fill_discrete(name = leg_title
, labels = c("Destabilising", "Stabilising"))
return(OutPlot_count)
}
#############################################################
# end of function
#############################################################