R语言绘图:相关性分析及绘图展示 下载本文

相关性分析

gaom

在我们平时分析的时候,经常会遇到样品间的相关性检验分析,并以此判断对我们后续分析的影响。今天主要跟大家讨论一下简单的相关性分析以及结果展示。 利用的测试数据还是之前我们在geo数据库中随便找的一份表达谱数据。首先还是导入数据,进行简单分析,获取相关数值。

rm(list=ls())#先把我们的R清空一下

data<-read.table(file =\语言绘图\\\\相关性分析\\\\test_data.txt\,header = T,row.names =1,sep=\)#读取数据

cor(data,method =\)#方法可选pearson、kendall、spearman。 ## T01 T02 T03 T04 T05 T06 T07

## T01 1.0000000 0.9626878 0.9820587 0.9775637 0.9672888 0.9664156 0.9752635

## T02 0.9626878 1.0000000 0.9871793 0.9739935 0.9779155 0.9794141 0.9786400

## T03 0.9820587 0.9871793 1.0000000 0.9823576 0.9819684 0.9808063 0.9833352

## T04 0.9775637 0.9739935 0.9823576 1.0000000 0.9915693 0.9890907 0.9815730

## T05 0.9672888 0.9779155 0.9819684 0.9915693 1.0000000 0.9943036 0.9805366

## T06 0.9664156 0.9794141 0.9808063 0.9890907 0.9943036 1.0000000 0.9798487

## T07 0.9752635 0.9786400 0.9833352 0.9815730 0.9805366 0.9798487 1.0000000

## T08 0.9714801 0.9791369 0.9816482 0.9814655 0.9804464 0.9796599 0.9938647

## T09 0.9746475 0.9802358 0.9845114 0.9814857 0.9800746 0.9794935 0.9947428

## T10 0.9636498 0.9717902 0.9757652 0.9759936 0.9771073 0.9755922 0.9850377

## T11 0.9739732 0.9677072 0.9775576 0.9796979 0.9778722 0.9760231 0.9876567

## T12 0.9613186 0.9685109 0.9732389 0.9739145 0.9757272 0.9737234 0.9855969

## T08 T09 T10 T11 T12 ## T01 0.9714801 0.9746475 0.9636498 0.9739732 0.9613186 ## T02 0.9791369 0.9802358 0.9717902 0.9677072 0.9685109 ## T03 0.9816482 0.9845114 0.9757652 0.9775576 0.9732389 ## T04 0.9814655 0.9814857 0.9759936 0.9796979 0.9739145 ## T05 0.9804464 0.9800746 0.9771073 0.9778722 0.9757272 ## T06 0.9796599 0.9794935 0.9755922 0.9760231 0.9737234

## T07 0.9938647 0.9947428 0.9850377 0.9876567 0.9855969 ## T08 1.0000000 0.9942297 0.9858170 0.9849012 0.9837345 ## T09 0.9942297 1.0000000 0.9849167 0.9850892 0.9839299 ## T10 0.9858170 0.9849167 1.0000000 0.9867687 0.9878700 ## T11 0.9849012 0.9850892 0.9867687 1.0000000 0.9919710 ## T12 0.9837345 0.9839299 0.9878700 0.9919710 1.0000000

获得每个样品之间的相关系数,下面让我们把这些结果可视化。先利用基本函数plot展示下我们样品的结果。

plot(data[,1:6],pch=19,col=rgb(0,0,100,50,maxColorValue=255))#我们截取前面6个样品看看他们的相关性

从上面的结果来看T01、T02、T03之间的相关性要稍微差些,而T04、T05、T06之间的相关性要好的多。

下面我们根据cor函数的结果做成类似热图的形式。

library(\)

cor_data<-as.matrix(cor(data,method =\))#获取相关系数矩阵 levelplot(cor_data)#直接利用levelplot函数进行绘图

上图中颜色

非常淡,所以我们想考虑一下自己把这个图再进化一下。

col<-colorRampPalette(c(\,\,\),space =\)#我们自己设置填充颜色

levelplot(cor_data,main =\,xlab =\,ylab =\,col.regions =col(100))#main对应的是图的标题,以及xlab、ylab分别对应x轴和y轴的标题,这里表示不添加,所以都是\引号里面是没东西的

从图中我们可以看出T04、T05、T06以及T07、T08、T09这两组的相关性就更好。当然,我们也可以直接用pheatmap这个画热图的函数将结果展示出来。

library(\)

pheatmap(cor_data,cluster_rows =F,cluster_cols = F,display_numbers = T,number_format =\,color =col(100),main =\,number_color =\,fontsize_number =5)#这里把聚类树部分都去除了,同时显示小数点后4位有效数字,并自己颜色设置为白色,同时可以利用fontsize_number设置数字大小

在这里我们把对应的相关系数值直接标记在了图中。也不只是说就pheatmap才能标记处数字。

library(\)

## Warning: package 'pcaPP' was built under R version 3.3.2 cor1<-cor(data,method =\) plotcov(cor1,method1 =\)

## Warning in plot.xy(xy.coords(x, y), type = type, ...): 所提供的颜色值既不是

## 数字也不是字符

除了这些函数之外。我们的大ggplot表示画起来也无压力,只是我们需要稍微倒腾下数据。

library(\)

## Warning: package 'reshape2' was built under R version 3.3.2 library(\)

## Warning: package 'ggplot2' was built under R version 3.3.2

cor_data2<-melt(cor(data))

p<-ggplot(cor_data2,aes(x=cor_data2$Var1,y=cor_data2$Var2,fill=cor_data2$value))+geom_tile()+scale_fill_gradient(low =\,high =\) p

上述的展现方式其实主要还是通过不同颜色的方式进行直观展示。但实际在我们再展示结果的时候,不仅仅局限于只是颜色改变。

library(\)

## Warning: package 'corrgram' was built under R version 3.3.2

corrgram(data,lower.panel=panel.pts,upper.panel=panel.pie,text.panel=panel.txt)

利用

corrgram函数能画出各种更酷炫的相关性结果。上图中的圆形图中蓝色所占面积越大,表示相关系数值越接近1。