R语言绘图相关性研究分析及绘图展示.docx
《R语言绘图相关性研究分析及绘图展示.docx》由会员分享,可在线阅读,更多相关《R语言绘图相关性研究分析及绘图展示.docx(9页珍藏版)》请在冰点文库上搜索。
R语言绘图相关性研究分析及绘图展示
R语言绘图:
相关性分析及绘图展示
————————————————————————————————作者:
————————————————————————————————日期:
相关性分析
gaom
在我们平时分析的时候,经常会遇到样品间的相关性检验分析,并以此判断对我们后续分析的影响。
今天主要跟大家讨论一下简单的相关性分析以及结果展示。
利用的测试数据还是之前我们在geo数据库中随便找的一份表达谱数据。
首先还是导入数据,进行简单分析,获取相关数值。
rm(list=ls())#先把我们的R清空一下
data<-read.table(file="C:
\\Users\\gaom\\Desktop\\R语言绘图\\相关性分析\\test_data.txt",header=T,row.names=1,sep="\t")#读取数据
cor(data,method="pearson")#方法可选pearson、kendall、spearman。
##T01T02T03T04T05T06T07
##T011.00000000.96268780.98205870.97756370.96728880.96641560.9752635
##T020.96268781.00000000.98717930.97399350.97791550.97941410.9786400
##T030.98205870.98717931.00000000.98235760.98196840.98080630.9833352
##T040.97756370.97399350.98235761.00000000.99156930.98909070.9815730
##T050.96728880.97791550.98196840.99156931.00000000.99430360.9805366
##T060.96641560.97941410.98080630.98909070.99430361.00000000.9798487
##T070.97526350.97864000.98333520.98157300.98053660.97984871.0000000
##T080.97148010.97913690.98164820.98146550.98044640.97965990.9938647
##T090.97464750.98023580.98451140.98148570.98007460.97949350.9947428
##T100.96364980.97179020.97576520.97599360.97710730.97559220.9850377
##T110.97397320.96770720.97755760.97969790.97787220.97602310.9876567
##T120.96131860.96851090.97323890.97391450.97572720.97372340.9855969
##T08T09T10T11T12
##T010.97148010.97464750.96364980.97397320.9613186
##T020.97913690.98023580.97179020.96770720.9685109
##T030.98164820.98451140.97576520.97755760.9732389
##T040.98146550.98148570.97599360.97969790.9739145
##T050.98044640.98007460.97710730.97787220.9757272
##T060.97965990.97949350.97559220.97602310.9737234
##T070.99386470.99474280.98503770.98765670.9855969
##T081.00000000.99422970.98581700.98490120.9837345
##T090.99422971.00000000.98491670.98508920.9839299
##T100.98581700.98491671.00000000.98676870.9878700
##T110.98490120.98508920.98676871.00000000.9919710
##T120.98373450.98392990.98787000.99197101.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("lattice")
cor_data<-as.matrix(cor(data,method="pearson"))#获取相关系数矩阵
levelplot(cor_data)#直接利用levelplot函数进行绘图
上图中颜色非常淡,所以我们想考虑一下自己把这个图再进化一下。
col<-colorRampPalette(c("green","black","red"),space="rgb")#我们自己设置填充颜色
levelplot(cor_data,main="corplottest",xlab="",ylab="",col.regions=col(100))#main对应的是图的标题,以及xlab、ylab分别对应x轴和y轴的标题,这里表示不添加,所以都是"",引号里面是没东西的
从图中我们可以看出T04、T05、T06以及T07、T08、T09这两组的相关性就更好。
当然,我们也可以直接用pheatmap这个画热图的函数将结果展示出来。
library("pheatmap")
pheatmap(cor_data,cluster_rows=F,cluster_cols=F,display_numbers=T,number_format="%.4f",color=col(100),main="correlationtest",number_color="white",fontsize_number=5)#这里把聚类树部分都去除了,同时显示小数点后4位有效数字,并自己颜色设置为白色,同时可以利用fontsize_number设置数字大小
在这里我们把对应的相关系数值直接标记在了图中。
也不只是说就pheatmap才能标记处数字。
library("pcaPP")
##Warning:
package'pcaPP'wasbuiltunderRversion3.3.2
cor1<-cor(data,method="pearson")
plotcov(cor1,method1="correlation")
##Warninginplot.xy(xy.coords(x,y),type=type,...):
所提供的颜色值既不是
##数字也不是字符
除了这些函数之外。
我们的大ggplot表示画起来也无压力,只是我们需要稍微倒腾下数据。
library("reshape2")
##Warning:
package'reshape2'wasbuiltunderRversion3.3.2
library("ggplot2")
##Warning:
package'ggplot2'wasbuiltunderRversion3.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="green",high="red")
p
上述的展现方式其实主要还是通过不同颜色的方式进行直观展示。
但实际在我们再展示结果的时候,不仅仅局限于只是颜色改变。
library("corrgram")
##Warning:
package'corrgram'wasbuiltunderRversion3.3.2
corrgram(data,lower.panel=panel.pts,upper.panel=panel.pie,text.panel=panel.txt)
利用corrgram函数能画出各种更酷炫的相关性结果。
上图中的圆形图中蓝色所占面积越大,表示相关系数值越接近1。