R語言學習筆記-Corrplot相關性分析


 

示例圖像

 

 

首先安裝需要的包

install.packages("Corrplot") #安裝Corrplot
install.packages("RColorBrewer ") #安裝RColorBrewer
install.packages("showtext")#安裝showtext
install.packages("sysfonts")#安裝sysfonts
install.packages("showtextdb")#安裝showtextdb
install.packages("showtext")#安裝RColorBrewer

 加載需要的包

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

如果需要更換字體,就加載系統內字體

font.families()                                  #查看添加的字體
showtext.begin()                                 #加載字體
**showtext.end()                                 #停止加載字體

 

導入數據[示例]

mydataframe<-read.csv(file,header=logical_value,sep="delimiter",row.names="name")
mydataframe:自定義數據名稱,此處將集合名稱定義為mydataframe 
table:指讀取文件格式為表格
file:      csv文件的名稱或路徑夾名稱
header:其后面邏輯值,可填寫TRUE或FALSE,表示文件是否讀取橫列標題
sep:指文件分隔符,如csv用英文逗號分隔 ","
row.names:指定表示行標識符的變量(作為行名的表頭)
本次利用自帶的mtcars作為示例
data(mtcars)#加載數據集
mydata <- mtcars[, c(1:7)]#使用前7行數據

 查看數據

head(mydata)#查看數據

 繪制圖像

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定義
COLOR01<- colorRampPalette(c("#5081ff","#638dff","#b1c6ff","#c3d5ff" ,"#ffffff", "#f7cccc","#f1aeac","#eb8b8a","#e66a68"))(10)
corrplot(pic01,col = COLOR01)

  

                  
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 分析/顯著性分析

 

 

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並定義此數據集合
 
        

 

                  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, ...)

 

 corrplot(pic01, type = "upper", order = "hclust",   p.mat=mydatap, sig.level = 0.05, insig = "label_sig")#繪圖,標記顯著值

  

 

 

 

 

 

corrplot(pic01, type="upper", order="hclust", p.mat = mydatap, sig.level = 0.05)#繪圖,把不顯著的叉掉

  

 

 

 

corrplot(pic01, type = "upper", order = "hclust",   p.mat=mydatap, sig.level = 0.05, insig="blank")
#繪圖,把不顯著的空掉

  

 

 

 

 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
)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM