Plot a heatmap of a given matrix
#' Plot a correlation matrix
#' In fact... it could be any matrix
#'
#' @param correlationMatrix
#' A matrix, regardless of dimensions
#' @param axis.textsize
#' Size of the y and x axis text [ggplot]
#'
#' @return
#' a ggplot object
#' @export
#'
#' @examples
#' print(plot.corrmat(correlationMatrix = matrix(rnorm(1000), 10, 100)))
plot.corrmat <- function(correlationMatrix, axis.textsize=3){
inst.load.packages("reshape2", silent = TRUE)
inst.load.packages("ggplot2", silent = TRUE)
melted.df <- melt(correlationMatrix)
melted.df$Var1 <- factor(melted.df$Var1)
melted.df$Var2 <- factor(melted.df$Var2)
melted.df$Var1 <- factor(melted.df$Var1, levels = rev(levels(melted.df$Var1)))
melted.df$Var2 <- factor(melted.df$Var2, levels = rev(levels(melted.df$Var2)))
colnames(melted.df) <- c("GeneX", "GeneY", "corr")
plot00 <-
ggplot(melted.df, aes(x=GeneX, y=GeneY, fill=corr)) +
geom_tile() +
scale_fill_gradient2(low = "blue",
mid = "white",
high = "darkred",
na.value = hcl(h = 130, c = 100, l = 100, alpha = 0.4))+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, size=axis.textsize)
,axis.text.y = element_text(size=axis.textsize)
,panel.grid.major = element_blank()
,plot.margin=unit(c(3,3,.2,.2),"cm"), legend.position=c(1.08, .5))
return(plot00)
}