相关性分析
要判断多个数据的之间的关系,散点图的绘制就会显得比较繁琐,这时候要选择绘制散点矩阵
相关系数
install.packages(“corrplot”)
网址:Visualize correlation matrix using correlogram – Easy Guides – Wiki – STHDA
绘制散点图,对x,y 值取log,可以看出钻石的克拉数和价格是呈现正相关的。
qplot(log(carat),log(price),data=dat)
颜色、大小、性状和其他属性的设置
qplot(carat,price,data=dat,colour=color)
# 后期应用ggplot() 函数后,可以更加自由的绘制各种组合图形
qplot(carat,price,data=dat,geom=c(“point”,“smooth”))# 添加了一条拟合曲线
大家对相关性是不是有了一些初步的了解了呢?不要着急,下面小果将会带大家学习corrgram绘制相关性:
df <- read.csv("corrplot.csv", row.names = 1)
head(df)
par(bg = "#fdfdfd")
# 左下角
panel.raters <- function (x, y, corr = NULL, ...) {
if (!is.null(corr))
return()
plot.xy(xy.coords(x, y), type = "p",
pch = 20, #点形状
cex = .5, #点大小
...)
abline(lm(y ~ x), lwd = 2) #画拟合线
box(col = "black", lwd = 2) #黑色粗边框
}
# 对角线
textPanel <- function (x = 0.5, y = 0.5, txt, cex, font) {
text(x, y, txt, cex = cex, font = font)
box(col = "black", lwd = 2)
}
# 右上角
panel.fill.cor <- function (x, y, corr = NULL, ...)
{
# 计算相关系数
corr <- round(cor(x, y, use = "pairwise", method = "pearson"),2) # 可以换成"kendall"或 "spearman"
# 自定义背景颜色
ncol <- 14
col.regions <- colorRampPalette(c('darkslateblue', 'navy', 'white', 'firebrick3', 'red'))
pal <- col.regions(ncol)
col.ind <- as.numeric(cut(corr, breaks = seq(from = -1, to = 1, length.out = ncol + 1), include.lowest = TRUE))
# 画背景
par(new=TRUE)
plot(0, type='n', xlim=c(-1,1), ylim=c(-1,1), axes=FALSE, asp=1)
usr <- par("usr")
rect(usr[1], usr[3], usr[2], usr[4], col = pal[col.ind],
border = NA)
# 写相关系数
text(0, 0, labels = corr, cex = 2.5, col = ifelse(corr > 0, "black", "white"))
box(col = "black") #黑色窄边框
}
# 画图并保存到pdf文件
pdf("corrgram.pdf",8,8)
pairs(df[1:5],
gap = .5, #小图之间的空隙
text.panel = textPanel, #对角线
lower.panel = panel.raters, #左下角
upper.panel = panel.fill.cor) #右上角
dev.off()
好了,今天的分享就到这里了,欢迎关注“生信果”公众号,主要发表或收录生物信息学的教程,以及基于R的分析和可视化等内容,一起见证小白和大佬的成长。
推荐阅读