相关性分析


要判断多个数据的之间的关系,散点图的绘制就会显得比较繁琐,这时候要选择绘制散点矩阵

相关系数

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 <- 14col.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的分析和可视化等内容,一起见证小白和大佬的成长。

推荐阅读