R语言绘制相关系数图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R语言绘制相关系数图
R语言里面绘制相关系数图,我最常用的是graphics包中的pairs 函数,gpairs包中gpairs函数,corrgram包中corrgram函数和corrplot包中corrplot函数。

而pairs函数可以自定义函数,也就更加不受限制。

各函数的用法直接在R输入?pairs就可以看到很详尽的用法。

代码块
#######pairs
library(graphics)
#一基本款
pairs(iris[,1:4],pch=21,bg=c('red','green3','blue'))
#二自定义款
#1.上三角显示相关系数具体值,且相关系数越大,字体也越大
panel.cor<-function(x,y){
usr <- par('usr')
on.exit(par(usr))
par(usr=c(0,1,0,1))
r<-cor(x,y)
text<-format(r,digits = 2)
text(0.5,0.5,text,cex=abs(r)*5)
}
#2.主对角线为各变量的直方图
panel.hist<-function(x,y){
#下面三句关于usr特别特别重要,稍微一改只有最后一个格子会出现直方图,具体原理未知
usr <- par('usr')
on.exit(par(usr))
par(usr = c(usr[1:2],0, 1.5) )
h<-hist(x,plot=F)
#不是直接画直方图,而是在主对角线每个方框内用rect函数画多个矩形堆叠成直方图
breaks<-h$breaks
b_length<-length(breaks)
y<-h$counts/max(h$counts)
rect(breaks[-b_length],0,breaks[-1],y,col='pink')
}
#3.下三角为散点图,并添加线性拟合曲线
panel.lm<-function(x,y){
points(x,y,col='black',cex=1)
abline(lm(y~x),col='red')
}
#画出我们想要的图吧
pairs(iris[,1:4],upper.panel = panel.cor,lower.panel = panel.lm,diag.panel = panel.hist)
###########gpairs
library(gpairs)
gpairs(iris, upper.pars = list(scatter = 'stats'),
scatter.pars = list(pch = substr(as.character(iris$Species), 1, 1),col = as.numeric(iris$Species)),
stat.pars = list(verbose = T))#verbose=T上三角统计量输出就包含4个值,false就只输出相关系数
gpairs(iris[,1:4],upper.pars=list(scatter='points'),
lower.pars = list(scatter='qqplot'))
####################corrgram
library(corrgram)
#饼图中正相关性从12点钟顺时针填充,负相关性从12点钟逆时针填充
corrgram(iris[,1:4],upper.panel = panel.pie,lower.panel = panel.shade,diag.panel=panel.density,order=T)
############corrplot
library(corrplot)
#1.仅相关系数
cor_data<-cor(mtcars)
corrplot(cor_data,method='color',type = 'upper',tl.pos='d') corrplot(cor_data,method='number',type='lower',add=T,tl.p os = 'd')
#2.相关系数&p值
cor_data2<-cor.mtest(mtcars)
corrplot(cor_data,method='circle',p.mat=cor_data2$p,order ='AOE',type='upper',tl.pos='d')
corrplot(cor_data,method = 'number',p.mat=cor_data2$p,order='AOE',type='lower',tl.pos=' d',add=T)
#3.非相关系数可视化
corrplot(t(iris[1:4,1:4]),method='ellipse',type='upper',is.corr =F)。

相关文档
最新文档