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 ="PCA")
corrplot(corr, method="color", order = "PCA", addCoef.col=grey(0.1))
corrplot(corr, method="square", order = "PCA")
corrplot(corr, method="ellipse", 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")
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)
## color of matrix
col1 <- colorRampPalette(rev(c("#00007F", "blue", "#007FFF", "cyan",
"white", "yellow", "#FF7F00", "red", "#7F0000")))
col2 <- colorRampPalette(c("#67001F", "#B2182B", "#D6604D", "#F4A582", "#FDDBC7",
"#FFFFFF", "#D1E5F0", "#92C5DE", "#4393C3", "#2166AC", "#053061"))
col3 <- colorRampPalette(c("red", "white", "blue"))
wb <- c("white","black")
## col1
corrplot(corr, order="PCA", col=col1(200))
corrplot(corr, order="PCA", col=col1(20), cl.length=21)
corrplot(corr, order="PCA", col=col1(10))
corrplot(corr, order="PCA", col=col1(8))
## col2
corrplot(corr, order="PCA", col=col2(200))
corrplot(corr, order="PCA", col=col2(10))
corrplot(corr, order="PCA", col=col2(8))
## col3
corrplot(corr, order="PCA", col=col3(100))
corrplot(corr, order="PCA", col=col3(10))
## col=wb
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")
## visualize a similarrity matrix in [0, 1]
corrplot(abs(corr),order="PCA",assign.col="0to1")
corrplot(abs(corr),order="PCA",assign.col="0to1", col=col1(20)[11:20])
corrplot(abs(corr),order="PCA",assign.col="0to1", col=col3(200)[101:200])
## text-labels and plot type
corrplot(corr, order="PCA", tl.srt=45)
corrplot(corr, order="PCA", tl.srt=60)
corrplot(corr, order="PCA", addtextlabel="d",addcolorlabel="no")
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")
corrplot(corr, order="PCA", type="upper", diag=FALSE)
corrplot(corr, order="PCA", type="lower", addcolorlabel="b")
corrplot(corr, order="PCA", type="lower", addcolorlabel="b", diag=FALSE)
#### color-legend
corrplot(corr, order="PCA", cl.ratio=0.2, cl.align="l")
corrplot(corr, order="PCA", cl.ratio=0.2, cl.align="c")
corrplot(corr, order="PCA", cl.ratio=0.2, cl.align="r")
corrplot(corr, order="PCA", addcolorlabel="bottom")
corrplot(corr, order="PCA", addcolorlabel="bottom", cl.range="min2max", addtextlabel="d")
corrplot(corr, order="PCA", addcolorlabel="no")
## addshade, addgrid and addCoef
corrplot.shade(corr, order="PCA", addshade = "negative", 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", addCoef.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