data(mtcars)
corr <- cor(mtcars)
par(ask = TRUE)
## different methods to display corr-matrix
corrplot(corr, method="number", col="black", addcolorlabel="no")
corrplot(corr, method="number")
corrplot(corr)
corrplot(corr, order="hclust")
corrplot(corr, order ="PCA")
corrplot(corr, method="square", order = "PCA")
corrplot(corr, method="ellipse", order = "PCA")
corrplot(corr, method="color", order = "PCA")
corrplot(corr, method="shade", order = "PCA")
corrplot(corr, method="pie", order = "PCA")
## mixed methods
corrplot(corr,order="PCA",type="upper",addtextlabel="no")
corrplot(corr,add=TRUE, type="lower",
method="ell",order="PCA",addtextlabel="d")
corrplot(corr,order="PCA",type="upper",addtextlabel="no")
corrplot(corr,add=TRUE, type="lower",
method="square",order="PCA",addtextlabel="d")
## order is hclust and draw rectangles
corrplot(corr, order="hclust", addrect = 2)
corrplot(corr, order="hclust", addrect = 3, rect.col = "red")
corrplot(corr, order="hclust", addrect = 4, rect.col = "blue")
corrplot(corr, order="hclust", hclust.method="ward", addrect = 4)
## text-labels and plot type
corrplot(corr, order="PCA", addtextlabel="d")
corrplot(corr, order="PCA", diag=FALSE, addtextlabel="d")
corrplot(corr, order="PCA", diag=FALSE, addtextlabel="d",cl.range="min2max")
corrplot(corr, order="PCA", type="upper", addtextlabel="td")
corrplot(corr, order="PCA", type="upper", diag=FALSE, addtextlabel="td")
corrplot(corr, order="PCA", type="lower", addcolorlabel="b", addtextlabel="ld")
corrplot(corr, order="PCA", type="lower", addcolorlabel="b", diag=FALSE, addtextlabel="ld")
#### color-legend, corr-color, and background-color
corrplot(corr, order="PCA", cl.ratio=0.1, cl.align="r", cl.offset=0)
corrplot(corr, order="PCA", cl.ratio=0.15,cl.length=9)
corrplot(corr, order="PCA", cl.ratio=0.2, cl.align="l")
corrplot(corr, order="PCA", addcolorlabel="b")
corrplot(corr, order="PCA", addcolorlabel="b",cl.range="min2max",addt="d")
corrplot(corr, order="PCA", addcolorlabel="no")
col1 <- rev(heat.colors(100))
col2 <- colorRampPalette(c("red", "white", "blue"))
col3 <- colorRampPalette(rev(c("#00007F", "blue", "#007FFF", "cyan",
"white", "yellow", "#FF7F00", "red", "#7F0000")))
col4 <- grey(10:1/10)
wb <- c("white","black")
corrplot(corr, order="PCA", col=col1)
corrplot(corr, order="PCA", col=col2(100))
corrplot(corr, order="PCA", col=col3(100))
corrplot(corr, order="PCA", col=col4)
corrplot(corr, col = wb, order="PCA", outline=TRUE, addcolorlabel="no")
## like Chinese wiqi, suit for either on screen or white-black print.
corrplot(corr, col = wb, bg="gold2", order="PCA", addcolorlabel="no")
## addshade, addgrid and addnum
corrplot.shade(corr, order="PCA", addshade = "negtive", addgrid.col=NULL)
corrplot.shade(corr, order="PCA", addshade = "positive", addgrid.col=NULL)
corrplot.shade(corr, order="PCA", addshade = "all", addgrid.col=NULL)
corrplot.color(corr, order="PCA", addgrid.col=NULL)
corrplot.color(corr, order="PCA", addgrid.col="white")
corrplot.color(corr, order="PCA", addgrid.col="white", addnum.col="grey10")
##the input matrix is not square
corrplot(corr[1:8,])
corrplot(corr[,1:8])
cor.mtest <- function(mat, conf.level = 0.95){
mat <- as.matrix(mat)
n <- ncol(mat)
p.mat <- lowCI.mat <- uppCI.mat <- matrix(NA, n, n)
diag(p.mat) <- 0
diag(lowCI.mat) <- diag(uppCI.mat) <- 1
for(i in 1:(n-1)){
for(j in (i+1):n){
tmp <- cor.test(mat[,i], mat[,j], conf.level = conf.level)
p.mat[i,j] <- p.mat[j,i] <- tmp$p.value
lowCI.mat[i,j] <- lowCI.mat[j,i] <- tmp$conf.int[1]
uppCI.mat[i,j] <- uppCI.mat[j,i] <- tmp$conf.int[2]
}
}
return(list(p.mat, lowCI.mat, uppCI.mat))
}
res1 <- cor.mtest(mtcars,0.95)
res2 <- cor.mtest(mtcars,0.99)
## specialized the insignificant value according to the significant level
corrplot(corr, p.mat = res1[[1]], sig.level=0.2)
corrplot(corr, p.mat = res1[[1]], sig.level=0.05)
corrplot(corr, p.mat = res1[[1]], sig.level=0.01)
corrplot(corr, p.mat = res1[[1]], insig = "blank")
corrplot(corr, p.mat = res1[[1]], order="hclust", insig = "blank", addrect=3)
corrplot(corr, p.mat = res1[[1]], order="hclust", insig = "pch", addrect=3)
## plot confidence interval(0.95), "square" method
corrplot(corr,low=res1[[2]], upp=res1[[3]],
plotC="circle", addg="grey20",addc="no")
corrplot(corr, p.mat = res1[[1]],low=res1[[2]], upp=res1[[3]],
plotC="circle", addg="grey20",addc="no")
corrplot(corr, low=res1[[2]], upp=res1[[3]],
col=c("white","black"),bg="gold2",order="PCA",
plotCI="circle",addc="no",pch.col="red")
corrplot(corr, p.mat = res1[[1]], low=res1[[2]], upp=res1[[3]],
col=c("white","black"),bg="gold2",order="PCA",
plotCI="circle",addc="no",pch.col="red")
## plot confidence interval(0.95), "square" method
corrplot(corr, low=res1[[2]], upp=res1[[3]],
col=c("white","black"),bg="gold2", order="PCA",
plotCI="square",addg=NULL,addc="no")
corrplot(corr, p.mat = res1[[1]],low=res1[[2]], upp=res1[[3]],
col=c("white","black"),bg="gold2",order="PCA",pch.col="red",
plotC="square", addg=NULL,addc="no")
## plot confidence interval(0.95, 0.95, 0.99), "rect" method
corrplot(corr, low=res1[[2]], upp=res1[[3]], order="hclust",
rect.col="navy", plotC="rect",addc="no")
corrplot(corr, p.mat = res1[[1]], low=res1[[2]], upp=res1[[3]], order="hclust",
pch.col="red", sig.level = 0.05, addrect=3, rect.col="navy",
plotC="rect",addc="no")
corrplot(corr, p.mat = res2[[1]], low=res2[[2]], upp=res2[[3]], order="hclust",
pch.col="red", sig.level = 0.01, addrect=3, rect.col="navy",
plotC="rect",addc="no")
## an animation of changing confidence interval in different significance level
par(ask=FALSE)
for(i in seq(0.1, 0.001, -0.001)){
tmp <- cor.mtest(mtcars,1-i)
corrplot(corr, p.mat = tmp[[1]], low=tmp[[2]], upp=tmp[[3]], order="hclust",
pch.col="red", sig.level = i, plotC="rect",addc="no",
mar=c(0,0,1,0),
title=substitute(alpha == x,list(x=format(i,digits=3,nsmall=3))))
Sys.sleep(0.01)
}
Run the code above in your browser using DataLab