corrplot.circle
, corrplot.square
, corrplot.ellipse
,
corrplot.number
,
corrplot.pie
, corrplot.shade
, and corrplot.color
are
convenience wrappers of corrplot
that take the same arguments as the
corresponding option it replaces such as circle, ellipse etc.corrplot(corr,
method = c("circle", "square", "ellipse", "number", "shade", "color", "pie"),
type = c("full", "lower", "upper"), add = FALSE,
col = NULL, assign.col = c("-1to1","min2max","0to1"),
bg = "white", title = "",
diag = TRUE, outline = FALSE, mar = c(0,0,0,0),
addgrid.col = "gray", addnum.col= NULL,
order = c("original", "PCA", "hclust", "alphabet"),
hclust.method = c("complete", "ward", "single", "average",
"mcquitty", "median", "centroid"),
addrect = NULL, rect.col="black", rect.lwd = 2,
addtextlabel = c("lt","ld","td","d", "no"), tl.cex = 1,
tl.col = "red", tl.offset = 0.4,
addcolorlabel = c("right", "bottom","no"), cl.range=c( "-1to1","min2max","0to1"),
cl.length=11, cl.cex =0.8, cl.ratio = 0.15, cl.align.text="c",cl.offset=0.5,
addshade = c("negtive", "positive", "all"),
shade.lwd = 1, shade.col = "white",
p.mat = NULL, sig.level = 0.05,
insig = c("pch","blank", "no"),
pch = 4, pch.col = "black", pch.cex = 3,
plotCI = c("no","square", "circle", "rect"),
lowCI.mat = NULL, uppCI.mat = NULL)
corrplot.circle(corr, ...)
corrplot.square(corr, ...)
corrplot.ellipse(corr,...)
corrplot.number(corr, ...)
corrplot.shade(corr, ...)
corrplot.pie(corr, ...)
corrplot.color(corr, ...)
order
is not "original"
."circle"
(default), "square"
, "ellipse"
, "number"
, "pie"
, "shade"
"full"
(default), "upper"
or "lower"
, display full matrix,
lower triangular or upper triangular of it."assign.col"
parameter."-1to1"
(default), "min2max"
or "0to1"
, the method of how to
assign colors to the elements in the input matrix. See details in the examples.par
.NULL
, don't add grid.NULL
, add no coefficients. Note: the figures are expressed in terms of a percentage for spacesaving."original"
for original order."alphabet"
for alphabetical order."PCA"
for principal component analysis."hclust"
order
is hclust
. This should be one of "ward"
, "single"
, "complete"
, "average"
, "mcq
order
is hclust
. If its value is NULL
(default), then
add no rectangles.addrect
is not NULL
.addrect
is not NULL
."lt"
, "ld"
, "td"
, or "d"
, giving position of
text labels, "lt"
means left and top, "ld"
means left and diagonal(near),
"td"
means top and diagonal(netext
."right"
(default), "bottom"
or "no"
, where to draw colorlabel.
If "no"
, don't draw colorlabel."-1to1"
(default), "min2max"
, or "0to1"
style of colorlabel.
See details in the examples.colorlegend
.colorlegend
."l"
, "c"
(default) or "r"
, for number-label in colorlabel,
"l"
means left, "c"
means center, and "r"
means right.text
."negative"
, "positive"
or "all"
,
only valid when method
is "shade"
. If "all"
, all
correlation coefficients' glyph will be shaded; if "positiv
NULL
, arguments sig.level
, insig
,
pch
, pch.col
, pch.cex
is invalid.p-mat
is bigger than sig.level
, then
the corresponding correlation coefficient is regarded as insignificant."pch"
(default), "blank"
or "no"
. If "blank"
, wipe away the corresponding glyphs; if "pch"
,
add characters (see pch
insig
is "pch"
). See par
.insig
is "pch"
).insig
is "pch"
)."no"
, don't plot confidence interval.
If "rect"
, plot rectangles whose upper side means upper bound, lower side means
lower bound, and correlation coefficients are also added corrplot
's wrappers
(corrplot.circle
, corrplot.square
, etc.), passed to corrplot
.corrplot
function offers flexible ways to visualize correlation matrix,
lower and upper bound of confidence interval matrix.plotcorr
function in the ellipse
package and corrgram
function in the corrgram
package has some similarities.
Package seriation
offered more methods to reorder matrices, such as
ARSA, BBURCG, BBWRCG, MDS, TSP, Chen and so forth.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