#' Plot list of three plots in three columns and save to 'path' with filename #' 'Cluster_overview_'cluster'.pdf' #' #' This function combines a list of three plots into a single plot with three columns #' and saves it as a PDF file with a specified filename. The cluster number is #' included as a title on the top of the plot. #' #' @param plot_list A list of three plots to combine. #' @param cluster The cluster number to include in the plot title. #' @param out_path The path where the plot should be saved. Default is 'path'. #' @param w The width of the plot. Default is 'cm_width'. #' @param h The height of the plot. Default is 'cm_height'. #' @return combined plot #' @import ggplot2 #' @importFrom cowplot get_legend plot_grid ggdraw draw_label #' @export combine_cluster_plots_and_save <- function(plot_list, cluster, out_path = path, w = cm_width, h = cm_height) { dir.create(out_path, showWarnings = FALSE) combo_pl <- cowplot::plot_grid(plot_list[[1]] + theme(legend.position = "none"), plot_list[[2]] + theme(legend.position = "none"), plot_list[[3]] + theme(legend.position = "none"), ncol = 3, align = "h") legend <- cowplot::get_legend(plot_list[[3]] + # guides(fill = guide_legend(nrow = 1)) + theme(legend.position = "bottom")) title <- ggdraw() + draw_label( paste("Cluster:", cluster), fontface = 'bold', x = 0, hjust = 0 ) + theme( # add margin on the left of the drawing canvas, # so title is aligned with left edge of first plot plot.margin = margin(0, 0, 0, 7) ) combo_pl_with_legend <- cowplot::plot_grid(title, combo_pl, legend, ncol = 1, rel_heights = c(.1, 1, .1)) ggsave(file.path(out_path, paste0("Cluster_overview_", cluster, ".pdf")), combo_pl_with_legend, width = w, height = h, units = "cm") return(combo_pl_with_legend) }