#' Correlogram
#'
#' @param data data.frame
#' @param axissize default is 12
#' @param legendsize default is 12
#' @param legendposition default is c(0.9,0.2)
#' @param legendtitle default is "Correlation"
#' @param method default is Pearson
#' @author Gabriel Danilo Shimizu
#' @export
#' @import Hmisc
#'
correlation=function(data,
axissize=12,
legendsize=12,
legendposition=c(0.9,0.2),
legendtitle="Correlation",
method="pearson"){
dm=data
library(ggplot2)
library(Hmisc)
library(reshape2)
cr <- cor(dm,method = method)
cr[upper.tri(cr, diag=TRUE)] <- NA
dados=melt(cr, na.rm=TRUE, value.name="cor")
pvalor=rcorr(as.matrix(dm),type = method)
pvalor=pvalor$P
pvalor[upper.tri(pvalor, diag=TRUE)] <- NA
pvalor=melt(pvalor, na.rm=TRUE, value.name="p")
p=ifelse(unlist(pvalor$p)<0.01,"**", ifelse(unlist(pvalor$p)<0.05,"*"," "))
dados$p=p
grafico=ggplot(dados,aes(x=Var2,y=Var1,fill=cor))+
geom_tile(color="black",size=1)+
scale_x_discrete(position = "top")+
scale_fill_gradient2(low="#FF0800",
mid="white",
high="#0000FF", limits=c(-1,1))+
geom_label(aes(label=paste(format(cor,digits=2),p)),
fill="lightyellow",label.size = 1)+
ylab("")+xlab("")+
labs(fill=legendtitle)+
theme(axis.text = element_text(size=axissize,color="black"),
legend.text = element_text(size=legendsize),
legend.position = legendposition,
axis.ticks = element_blank(),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())+
labs(caption = "*p<0.05; **p<0.01")
print(grafico)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.