R語言製作相關圖

2021-02-08 走天涯徐小洋地理數據科學
R語言製作相關圖

這篇文章是一個英文教程的搬運和整理,前幾天在論文中看到了非常漂亮的相關圖(correlogram),可以通過這個畫出來。相關圖可以非常好的表現數據表中的各個變量之間的相關關係。在相關圖中,相關係數(correlation coefficients) 根據不同的值賦予了不同的顏色,相關矩陣(correlation matrix) 可以根據不同變量間的關係表現出來。在這裡使用了R語言中的corrplot包。

安裝corrplot包

要想在R語言中繪製相關圖,需要先安裝R包。在這裡使用的是「corrplot」包,具體的R語言安裝介紹請看前面的推文R語言安裝部署基礎。

R語言安裝部署基礎準備數據

實驗數據使用的是R語言中經典的mtcars

head(mtcars)

計算相關矩陣
M<-cor(mtcars)   #計算相關
head(round(M,2)) #保留兩位小數

相關矩陣計算結果相關圖:可視化相關矩陣

使用R語言corrplot函數即可實現相關圖的繪製。語法如下:

corrplot(corr, method="circle")

參數介紹corr用來繪圖的相關矩陣method可視化方式,可以為圓、顏色、數字等等不同的可視化方法

總共七種:方法分別為:「circle」, 「square」, 「ellipse」, 「number」, 「shade」, 「color」, 「pie」.

library(corrplot)
corrplot(M, method="circle")

corrplot(M, method="pie")

corrplot(M, method="color")

corrplot(M, method="number")

相關圖的排版

相關圖有三種排版方式:

corrplot(M, type="upper")

 corrplot(M, method = "color",type="lower")

重新排列相關矩陣

相關矩陣可以根據相關係數進行重新排列,這對於發現矩陣中的結構特點是非常重要的。「hclust」可以使用層次聚類法進行排布。

corrplot(M, method = "color",type="upper", order="hclust")

# 使用不同的色彩
col<- colorRampPalette(c("red", "white", "blue"))(20)
corrplot(M, type="upper", order="hclust", col=col)

# 將背景改為淺藍色
corrplot(M, type="upper", order="hclust", bg="lightblue")

分級設色

相關圖的顏色可以自定義。使用RcolorBrewer包可以進行調色,並分級設色。

library(RColorBrewer)
corrplot(M, type="upper", order="hclust", 
         col=brewer.pal(n=8, name="RdBu"))

分級設色8級

這個顏色的詳細信息可以從配色網站查詢:

https://tidyfriday.cn/colors/#type=sequential&scheme=BuGn&n=3https://colorbrewer2.org/

第一個是國內的,不過網站不太穩定,打開比較慢;第二個是國外的,需要翻牆,否則顯示不全。

改變標註的顏色和方向

使用tl.col參數控制坐標軸標註顏色,使用tl.srt控制坐標軸標註旋轉方向

corrplot(M, type="upper", order="hclust", tl.col="black", tl.srt=45)

坐標軸標註黑色,旋轉45°給相關圖添加顯著性檢驗計算相關的p值

計算相關的p值矩陣,代碼如下:

# mat : 數據的矩陣
#自定義了cor.mtest函數
# ... : further arguments to pass to the native R cor.test function
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
}
# matrix of the p-value of the correlation
p.mat <- cor.mtest(mtcars)
head(p.mat[, 1:5])

運行結果給相關圖添加顯著性
# Specialized the insignificant value according to the significant level
corrplot(M, type="upper", order="hclust", 
         p.mat = p.mat, sig.level = 0.01)

顯著性水平0.01
# Leave blank on no significant coefficient
corrplot(M, type="upper", order="hclust", 
         p.mat = p.mat, sig.level = 0.01, insig = "blank")

不滿足顯著性的表示為空白自定義相關圖
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(M, method="color", col=col(200),  
         type="upper", order="hclust", 
         addCoef.col = "black", # Add coefficient of correlation
         tl.col="black", tl.srt=45, #Text label color and rotation
         # 添加顯著性
         p.mat = p.mat, sig.level = 0.01, insig = "blank", 
         # hide correlation coefficient on the principal diagonal
         diag=FALSE 
         )

參考文獻http://www.sthda.com/english/wiki/visualize-correlation-matrix-using-correlogram#introductionhttps://colorbrewer2.org/https://cran.r-project.org/web/packages/corrplot/index.html

相關焦點

  • 「語言藝術小課堂」正音訓練——聲母r
    聲母 r01理論內容聲母r發音要領:發音時,舌尖上翹,靠近硬顎前部,留出窄縫,嗓子用力發聲,氣流從窄縫中擠出,摩擦成音,聲帶顫動。r r r02單音節練習容 繞 肉 若 熱 然 入 惹03雙音節練習揉揉 融入 容忍 軟弱
  • 是Excel的圖,不!是R的圖
    原文章來源連結:https://brucezhaor.github.io/blog/2016/06/13/excel2ggplot/
  • 【R語言】遙感影像Theil Sen趨勢分析MK檢驗
    01按以下形式將影像預處理好,起名字可以根據自己的需要,但是你要是不了解R語言,就按我的格式改名字吧
  • R語言也可以畫可愛的貓貓了
    無獨有偶,一位R語言軟體開發人員就開發了一個小小的R包,可以在ggplot的圖上畫出小貓咪!  geom_cat(aes(cat = cat_names), size = 3)cat_names中包含的貓咪名字可以在上圖中找到
  • 手把手:如何用R製作動態圖
    作者|顧運筠如何用R製作動態的統計圖呢?下面我們以「大數據文摘」國慶獻禮的世界獨立進程為例,手把手地教大家如何用R製作動態圖。從http://www.imagemagick.org/script/binary-releases.php網址下載相關的ImageMagic.exe。安裝ImageMagic.exe。
  • R軟體中製作動畫
    @寫在這中秋前夜: 動起來動畫製作近期有不少朋友一直在諮詢如何用R來做動畫(Animation)。製作動畫,對於傳染病工作者去發現傳染病時空傳播規律具有較大的價值。對其他學科而言,當時點較多時,通過動畫來展現其分布趨勢也是另有一番價值。當酷炫的動畫穿梭在你精美的PPT中時,是不是也要加個幾個分啊?
  • r語言一元回歸模型專題及常見問題 - CSDN
    轉載自:http://blog.fens.me/r-linear-regression/前言在我們的日常生活中,存在大量的具有相關性的事件,比如大氣壓和海拔高度,海拔越高大氣壓強越小;人的身高和體重,普遍來看越高的人體重也越重。
  • R語言 | 回歸分析(四)
    R: The R Project for Statistical Computinghttps://www.r-project.org/RStudio:https://rstudio.com/今天是我們最後一期R語言入門系列。從去年11月份到今天,中間也因學業停更了很久,好在堅持了下來。
  • R語言數據實戰 | 文本分析
    這時,業務相關的領域知識就很重要了。比如,在旅遊數據的例子中,我們希望提取出來跟交通相關的名詞,因為交通方式的不同很可能與旅遊產品的定價、銷量都息息相關。這裡與交通相關的名詞有飛機、高鐵、大巴等。也就是說,已知一些關鍵詞信息(如飛機、高鐵),目的是希望通過匹配的方式得到對應旅行產品的交通信息。具體怎麼做呢?在R語言中,用grepl()函數就可以解決。
  • 相關係數第二彈:斯皮爾曼相關
    利用斯皮爾曼等級相關計算A、D基因表達量的相關性,結果是:r=1,p-value = 4.96e-05這裡斯皮爾曼等級相關的顯著性顯然高於皮爾森相關。這是因為雖然兩個基因的表達量是非線性關係,但兩個基因表達量在所有樣本中的排列順序是完全相同的,因為具有極顯著的斯皮爾曼等級相關性。
  • R語言數據實戰 | R中的數據類型
    第一章介紹了R語言的概貌,下面將以一個簡單的電影票房實際數據為例,介紹在實際數據處理中R語言中的基本類型、基本操作。在電影的宣傳期,往往能看到其主演、導演頻頻現身各大頭條,吸引看客眼球,最後的落腳點往往是「祝***電影票房大賣」。
  • R語言給PCA加個小圈圈
    小夥伴們,在遇到組學實驗數據分析得時候,是少不了繪製PCA圖的,但是除了常規的PCA圖以外,往往也需要在我們的流程結果的PCA上展現組內樣品的分布範圍:像這樣的這樣的其實,本質上這些圓圈是在PCA圖的基礎上,加了一個置信區間。
  • R包vegan的Mantel tests探索群落物種組成是否與環境相關
    Mantel tests是確定兩組距離測度矩陣(而非兩組變量矩陣)之間相關性的相關性測試方法,用於判斷一個矩陣中的樣本距離與另一矩陣中的樣本距離是否相關。Mantel tests零假設為響應變量矩陣中對象之間的距離與解釋變量矩陣不存在相關,如果結果中p值顯著,則拒絕零假設,即存在相關性,隨著一個矩陣中樣本之間距離的增加(或減少),另一矩陣中對應樣本之間的距離也增加(或減少)。
  • 相關係數第一彈:哪哪都能看到的皮爾森相關
    相關表和相關圖可反映兩個變量之間的相互關係及其相關方向,但無法確切地表明兩個變量之間相關的程度。於是統計學家設計了統計指標——相關係數。相關係數是用以反映變量之間相關關係密切程度的統計指標。在所有相關係數的計算方法裡面,最常見的就是皮爾森相關。皮爾森相關係數也稱皮爾森積差相關係數,是一種線性相關係數。皮爾森相關係數是用來反映兩個變量線性相關程度的統計量。相關係數用r表示,其中n為樣本量,Xi Yi與`X`Y分別為兩個變量的觀測值和均值。r描述的是兩個變量間線性相關強弱的程度。r的絕對值越大表明相關性越強。SX SY分別為樣本標準差。
  • 戀與製作人周棋洛哪些r卡好用 戀與製作人周棋洛r卡推薦
    導 讀 戀與製作人中周棋洛的哪些r卡好用?
  • 怎樣用Python製作好玩的GIF動圖
    其實我們還能讓可視化圖形逼格更高一些,今天就分享一下如何讓可視化秀起來:用Python和matplotlib製作GIF圖表。假如電腦上沒有安裝ImageMagick,先去這裡按照自己的電腦系統下載對應版本,如果我們想用matplotlib的save方法渲染GIF動圖,就需要安裝ImageMagick。
  • 《集合啦動物森友會》櫻花家具怎麼製作 櫻花家具製作方法一覽
    ;font-size: 12px;} .t2c_r_f a:link{color:#737e91;} .t2c_r_f a:visited{color:#737e91;} .t2c_r_f a:hover{color:#ff6600;} .ns_t3{width:100%;height:44px;background:#222a35;} .t3c{width
  • R語言_010可視化(箱型圖)
    發現每次都用一些簡單的模擬數據,很無趣,偶爾還是應該找點有實際意義的數據,這樣做出來的圖也可以更深層次的了解一下圖背後的意義。
  • R語言從入門到精通:Day8-圖形繪製
    在上一次教程中,我們講解了R語言繪圖的諸多函數,想必看到自己做出的圖形,肯定小有成就感吧。其中圖6中展示了簡單條形圖的繪製,圖7中展示了堆砌條形圖和分組條形圖的繪製。圖7中出現了圖例與圖形重疊的現象,大家可以回顧一下上一次推文中圖例設置的內容,調整圖例的大小和位置,就可以解決這個問題。(這個小問題就留給大家區解決了)  從上面這個問題可以看出,只有三個變量的情況下都不可避免的出現了圖例和圖形重疊的情況,更複雜的情況該怎麼辦?
  • 商標註冊帶r啥意思
    商標註冊帶r啥意思?商標上的R是REGISTER的縮寫,商標註冊帶r是指註冊商標的意思。說明該商標已在國家商標局進行註冊申請並已經商標局審查通過,成為註冊商標。商標註冊帶r,代表已經取得商標專用權。可以在商品、包裝、說明書或者其他附屬物上標明註冊商標,使用註冊標記時可以在商標的右上角或右下角來標記。