#!/usr/bin/Rscript getwd() setwd("~/git/mosaic_2020/") getwd() ############################################################ # TASK: boxplots with stats ############################################################ doMyPlotsStats <- function(df) { mediators = levels(as.factor(df$mediator)) plots <- list() for (i in mediators) { cat("Plotting:", i, "\n") single=df[df$mediator==i,] max_y = max(single$value, na.rm = T) cat("Plotting:", i, "max_y:", max_y, "\n") #---------- # boxplot #---------- p = ggplot(single)+ geom_boxplot(aes(x = timepoint , y = value , color = obesity #, palette = c("#00BFC4", "#F8766D") ))+ scale_colour_manual(values=c("#00BFC4", "#F8766D")) + theme(axis.text.x = element_text(size = 15) , axis.text.y = element_text(size = 15 , angle = 0 , hjust = 1 , vjust = 0) , axis.title.x = element_blank() , axis.title.y = element_blank() , legend.position = "none" , plot.subtitle = element_text(size = 20, hjust = 0.5) , plot.title = element_text(size = 20, hjust = 0.5)) + labs(title = i) #-------- # stats #--------- stat_df <- single %>% group_by(timepoint, mediator) %>% wilcox_test(value ~ obesity, paired = F) %>% add_significance("p") stat_df$p_format = round(stat_df$p, digits = 3) stat_df <- stat_df %>% add_xy_position(x = "timepoint", dodge = 0.8) p2 = p + stat_pvalue_manual(stat_df #, y.position = max_y , label = "{p_format} {p.signif}" , hide.ns = T , tip.length = 0)+ scale_y_continuous(expand = expansion(mult = c(0.05, 0.25))) plots[[i]] <- p2 } return(plots) } ###############################################################