R语言学习笔记-Corrplot相关性分析

 

示例图像

 

 

首先安装需要的包

1
2
3
4
5
6
install.packages("Corrplot") #安装Corrplot
install.packages("RColorBrewer ") #安装RColorBrewer
install.packages("showtext")#安装showtext
install.packages("sysfonts")#安装sysfonts
install.packages("showtextdb")#安装showtextdb
install.packages("showtext")#安装RColorBrewer

 加载需要的包

1
lapply(c("corrplot","showtex","RColorBrewer","showtextdb","sysfonts"))

如果需要更换字体,就加载系统内字体

1
2
3
font.families()                                  #查看添加的字体
showtext.begin()                                 #加载字体
**showtext.end()                                 #停止加载字体

 

导入数据[示例]

1
mydataframe<-read.csv(file,header=logical_value,sep="delimiter",row.names="name")
1
2
3
4
5
6
mydataframe:自定义数据名称,此处将集合名称定义为mydataframe
table:指读取文件格式为表格
file:      csv文件的名称或路径夹名称
header:其后面逻辑值,可填写TRUEFALSE,表示文件是否读取横列标题
sep:指文件分隔符,如csv用英文逗号分隔 ","
row.names:指定表示行标识符的变量(作为行名的表头)
本次利用自带的mtcars作为示例
1
2
data(mtcars)#加载数据集
mydata <- mtcars[, c(1:7)]#使用前7行数据

 查看数据

1
head(mydata)#查看数据

 绘制图像

1
2
pic01<-cor(mydata)     
corrplot(pic01)                

 

corrplot(mydata)   
可以在括号内加入如下定义,改变图像。

                  method = c("circle"/"square"/"ellipse"/"number"/ "shade"/"color"/"pie"),
method:指定可视化的方法,可以是圆形、方形、椭圆形、数值、阴影、颜色或饼图形

 

 

 

                   type = c("full"/"lower"/"upper"), 
type:指定展示的方式,可以是完全的图形、上三角或下三角(不填时默认为“full”)

col:指定图像的几种颜色,默认以均匀的颜色展示,以col = c("purple", "green","white")),为例,即指图标在(-1,1)区间以紫色、绿色、白色三种颜色的改变表示。
****可以通过colorRampPalette定义
1
COLOR01<- colorRampPalette(c("#5081ff","#638dff","#b1c6ff","#c3d5ff" ,"#ffffff", "#f7cccc","#f1aeac","#eb8b8a","#e66a68"))(10)corrplot(pic01,col = COLOR01)

  

                  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
bg = c("white"/"black"/"pink"/……),
bg:指定图的背景色
 
                  title = "HokkaidoM",
                  mar=c(0, 0, 1, 0)        
title:为图形添加标题
mar=c(0, 0, 1, 0) :设置图距离(下,左,上,右)四个边缘的距离
 
*****若使用标题title必须加mar=c(0, 0, 1, 0),不然标题显示不全
 
 
                  is.corr = TRUE,                         
is.corr:是否为相关系数绘图,默认为TRUE,同样也可以实现非相关系数的可视化,只需使该参数设为FALSE即可
 
                   diag = TRUE,
diag:是否展示对角线上的结果,默认为TRUE
 
                 outline = FALSE
outline:是否绘制圆形、方形或椭圆形的轮廓,默认为FALSE
 
                   addgrid.col = NULL,
addgrid.col:当选择的方法为颜色或阴影时,默认的网格线颜色为白色,否则为灰色
 
                 addCoef.col = NULL,
addCoef.col:为相关系数添加颜色,默认不添加相关系数,只有方法为number时,该参数才起作用
 
                 addCoefasPercent = FALSE,
addCoefasPercent:为节省绘图空间,是否将相关系数转换为百分比格式,默认为FALSE
 
                   order = c("original", "AOE", "FPC", "hclust", "alphabet"),
                  hclust.method = c("complete", "ward", "single", "average", "mcquitty", "median", "centroid"),
order:指定相关系数排序的方法,可以是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序,一般”AOE”排序结果都比”FPC”要好
hclust.method:当order为hclust时,该参数可以是层次聚类中ward法、最大距离法等7种之一
 
                   addrect = NULL,
                  rect.col = "black",
                  rect.lwd = 2,
addrect:当order为hclust时,可以为添加相关系数图添加矩形框,默认不添加框,如果想添加框时,只需为该参数指定一个整数即可
rect.col:指定矩形框的颜色           
rect.lwd:指定矩形框的线宽
 
                   tl.pos = NULL,
tl.pos:指定文本标签(变量名称)的位置,当type=full时,默认标签位置在左边和顶部(lt),当type=lower时,默认标签在左边和对角线(ld),当type=upper时,默认标签在顶部和对角线,l、r代表左右,d表示对角线,n表示不添加文本标签
 
                  tl.cex = 1,
tl.cex:指定文本标签的大小
 
                   tl.col = "red",
tl.col:指定文本标签的颜色
 
                  tl.offset = 0.4,
tl.offset:设置文本标签偏移量,即文本标签和图像的距离
 
                  tl.srt = 90,
 tl.srt:文本标签角度
 
                   cl.pos = "b"/"r"/"n"
cl.pos:图例(颜色)位置,r图例在右表,b图例在底部,不需要图例时,只需指定该参数为n
 
                  cl.lim = (x1,x2),
 颜色区间限制
 
                   cl.length = 数字
颜色区间刻度间隔的数量
 
                  cl.cex = 0.8,
颜色刻度标签数字大小
 
                  cl.ratio = 0.15,
颜色刻度粗细
 
                   cl.align.text = "l","c","r",
刻度标签数字显示在每个刻度的靠左处/中央/靠右处
 
                  cl.offset = 0.5,
刻度标签与颜色刻度条的距离
 
                   addshade = c("negative", "positive", "all"),
addshade:只有当method=shade时,该参数才有用,参数值可以是negtive/positive和all,分表表示对负相关系数、正相关系数和所有相关系数添加阴影。注意:正相关系数的阴影是45度,负相关系数的阴影是135度
 
                   shade.lwd = 1,
shade.lwd:指定阴影的线宽
 
                  shade.col = "white",
shade.col:指定阴影线的颜色
 
                 addCoef.col=”颜色”
addCoef.col:增加p值
 
                 add = TRUE
add = :是否与另一图片拼接,默认为false

  

 

p.mat 分析/显著性分析

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cor.mtest <- function(mat, ...) {
    mat <- as.matrix(mat)
    n <- ncol(mat)
    p.mat<- matrix(NA, n, n)
    diag(p.mat) <- 0
    for (i in 1:(n - 1)) {
        for (j in (i + 1):n) {
            tmp <- cor.test(mat[, i], mat[, j], ...)
            p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
        }
    }
  colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
  p.mat
}
#构建cor.mtest函数mydatap<- cor.mtest(mydata)   #计算原始数据的p.mat并定义此数据集合

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                  sig.level = 0.05,
筛选的标准以0.05为界
 
sig.level = c(0.001,0.01,0.05)
设置筛选的各个区间值
 
    insig = c("pch","p-value","blank", "n"),
被筛选的不显著值为叉叉、p值数字、不显示任何东西、n
 
                  insig = "label_sig"
设置被筛选出的为显著值
 
    pch = 4, pch.col = "black", pch.cex = 3,
    plotCI = c("n","square", "circle", "rect"),
    lowCI.mat = NULL,
                  uppCI.mat = NULL, ...)

 

1
corrplot(pic01, type = "upper", order = "hclust",   p.mat=mydatap, sig.level = 0.05, insig = "label_sig")#绘图,标记显著值

  

 

 

 

 

 

1
corrplot(pic01, type="upper", order="hclust", p.mat = mydatap, sig.level = 0.05)#绘图,把不显著的叉掉

  

 

 

 

1
2
corrplot(pic01, type = "upper", order = "hclust",   p.mat=mydatap, sig.level = 0.05, insig="blank")
#绘图,把不显著的空掉

  

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
corrplot(pic01,
 type="lower",
order="hclust",
p.mat=mydatap,
insig = "label_sig",
sig.level = c(0.001,0.01,0.05),
pch.cex = 2.5,pch.col="white",
diag = FALSE,tl.srt =45,tl.col = "black",
family="serif",col = COLOR01,
tl.cex = 2.5,title = "miraculousdna",
 mar=c(0, 0, 1, 0),cl.cex = 2.5
)

  

 

posted @   Miraculousdna  阅读(6008)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示