pacman::p_load(corrplot, tidyverse, ggstatsplot, ggcorrplot)Hands on Exercise 5 - Corrgram
Installing and Launching R Packages
Import data
wine <- read_csv("data/wine_quality.csv")Basic correlation matrix - 11 by 11 matrix
pairs(wine[,1:11])
input pairs() can be matrix or data frame
Basic correlation matrix for col 2 to 12
pairs(wine[,2:12])
Customize: Drawing the lower corner
pairs(wine[,2:12], upper.panel = NULL)
pairs(wine[,2:12], lower.panel = NULL)
Including with correlation coefficient
panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...) {
usr <- par("usr")
on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
r <- abs(cor(x, y, use="complete.obs"))
txt <- format(c(r, 0.123456789), digits=digits)[1]
txt <- paste(prefix, txt, sep="")
if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)
text(0.5, 0.5, txt, cex = cex.cor * (1 + r) / 2)
}
pairs(wine[,2:12],
upper.panel = panel.cor)
Visual correlation matrix: ggcormat()
ggstatsplot::ggcorrmat(
data = wine,
cor.vars = 1:11)
Adding title

Multiple plots

Corrplot
wine.cor <- cor(wine[, 1:11])corrplot(wine.cor)
Ellipse
corrplot(wine.cor,
method = "ellipse") 
Customize layout
corrplot(wine.cor,
method = "ellipse",
type="lower")
corrplot(wine.cor,
method = "ellipse",
type="lower",
diag = FALSE,
tl.col = "black")
Mixed layout - corrplot.mix()
corrplot.mixed(wine.cor,
lower = "ellipse",
upper = "number",
tl.pos = "lt",
diag = "l",
tl.col = "black")
Combine corrgram with significant test
wine.sig = cor.mtest(wine.cor, conf.level= .95)
corrplot(wine.cor,
method = "number",
type = "lower",
diag = FALSE,
tl.col = "black",
tl.srt = 45,
p.mat = wine.sig$p,
sig.level = .05)
Reorder a corrgram
corrplot.mixed(wine.cor,
lower = "ellipse",
upper = "number",
tl.pos = "lt",
diag = "l",
order="AOE",
tl.col = "black")
Reorder correlation matrix using hclust
corrplot(wine.cor,
method = "ellipse",
tl.pos = "lt",
tl.col = "black",
order="hclust",
hclust.method = "ward.D",
addrect = 3)