介紹ggcorr函數(shù)是一個可視化函數(shù),用于將矩陣?yán)L制為ggplot2圖片。 為何使用ggcorr包相關(guān)矩陣顯示相對大量連續(xù)變量之間的相關(guān)系數(shù)。 然而,雖然R提供了一種通過cor函數(shù)創(chuàng)建這種矩陣的簡單方法,但它沒有為該函數(shù)創(chuàng)建的矩陣提供繪圖方法。ggcorr函數(shù)提供了這樣的繪圖方法,使用ggplot2包中實現(xiàn)的“圖形語法”來渲染繪圖。 在實踐中,其結(jié)果在圖形上接近于corrplot函數(shù)的結(jié)果,這是優(yōu)秀的arm包的一部分。 安裝ggcorr可通過GGally包獲得: install.packages("GGally") nba = read.csv("http://datasets./ppg2008.csv") head(nba) library(ggplot2) library(GGally) ggcorr(nba)
相關(guān)方法ggcorr支持cor函數(shù)提供的所有相關(guān)方法。該方法由method參數(shù)控制。
以下是一些示例,說明如何將不同的關(guān)聯(lián)方法傳遞給ggcorr: # Pearson correlation coefficients, using pairwise observations (default method) ggcorr(nba[, -1], method = c("pairwise", "pearson")) # Pearson correlation coefficients, using all observations ggcorr(nba[, -1], method = c("everything", "pearson")) # Kendall correlation coefficients, using complete observations ggcorr(nba[, -1], method = c("complete", "kendall")) # Spearman correlation coefficients, using strictly complete observations ggcorr(nba[, -1], method = c("all.obs", "spearman"))
繪制參數(shù)其余的這些小插圖側(cè)重于如何調(diào)整ggcorr繪制的相關(guān)矩陣的方面。 控制色標(biāo)默認情況下,ggcorr使用從-1到+1的連續(xù)色標(biāo)來顯示矩陣中表示的每個相關(guān)的強度。 要切換到分類顏色,用戶所要做的就是添加nbreaks參數(shù),該參數(shù)指定顏色標(biāo)度中應(yīng)包含的斷點數(shù): ggcorr(nba[, 2:15], nbreaks = 5)
對色階的進一步控制包括name參數(shù)(用于設(shè)置其標(biāo)題),legend.size參數(shù)(用于設(shè)置圖例文本的大?。┖蚻egend.position參數(shù)(用于控制圖例的顯示位置)。 后兩個只是ggplot2主題中相同參數(shù)的快捷方式,由于該圖是一個ggplot2對象,所有其他相關(guān)的主題和指南方法也適用: ggcorr(nba[, 2:15], name = expression(rho), legend.position = "bottom", legend.size = 12) + guides(fill = guide_colorbar(barwidth = 18, title.vjust = 0.75)) + theme(legend.title = element_text(size = 14)) 控制調(diào)色板ggcorr使用默認的顏色漸變,從亮紅色到淺灰色到亮藍色。 可以通過low,mid和high參數(shù)修改此漸變,這與ggplot2中的scale_gradient2控制器類似: ggcorr(nba[, 2:15], low = "steelblue", mid = "white", high = "darkred") 默認情況下,漸變的中點設(shè)置為0,表示無相關(guān)關(guān)系。 中點參數(shù)可用于修改此設(shè)置。 特別是,將中點設(shè)置為NULL將自動選擇中值相關(guān)系數(shù)作為中點,并將向用戶顯示該值: ggcorr(nba[, 2:15], midpoint = NULL) 控制色標(biāo)顏色的最后一個選項是通過palette參數(shù)使用ColorBrewer調(diào)色板。 但是只有在使用nbreaks參數(shù)的前提時,才能使用palette參數(shù): ggcorr(nba[, 2:15], nbreaks = 4, palette = "RdGy") 注意:嘗試在顏色標(biāo)度上使用ColorBrewer調(diào)色板時,調(diào)色板中的顏色比調(diào)色板中的顏色多,將向用戶返回警告(實際上是兩個相同的警告)。 控制主要形狀默認情況下,ggcorr使用顏色來表示相關(guān)系數(shù)的強度,其方式與熱圖中的顏色深淺表示觀察數(shù)值大小的方式類似。但是ggcorr也可以將相關(guān)性表示為大小不同的圓圈,只需將其geom參數(shù)設(shè)置為“circle”: ggcorr(nba[, 2:15], geom = "circle", nbreaks = 5)
在該小插圖的末尾示出了對ggcorr的幾何形狀的附加控制。 控制系數(shù)標(biāo)簽ggcorr可以通過將label參數(shù)設(shè)置為TRUE來在相關(guān)圖上顯示變量之間的確切相關(guān)系數(shù): ggcorr(nba[, 2:15], label = TRUE) label_color和label_size參數(shù)允許設(shè)置系數(shù)標(biāo)簽的樣式: ggcorr(nba[, 2:15], nbreaks = 4, palette = "RdGy", label = TRUE, label_size = 3, label_color = "white") 控制變量標(biāo)簽在上面的幾個例子中,變量標(biāo)簽的渲染(在相關(guān)矩陣的對角線上示出)不一定是最佳的。 要修改這些標(biāo)簽的方面,用戶所要做的就是將geom_text支持的任何參數(shù)直接傳遞給ggcorr。 下面的示例顯示了如何在將標(biāo)簽向左移動并更改顏色時減小標(biāo)簽的大?。?/p> ggcorr(nba[, 2:15], hjust = 0.75, size = 5, color = "grey50") 相關(guān)矩陣中的變量標(biāo)簽可能出現(xiàn)的一個問題是它們太長而無法在圖的左下方完整顯示。 如下圖所示MIN變量似乎在繪圖的最左下角被遮蓋了: ggcorr(nba[, 3:16], hjust = 0.75, size = 5, color = "grey50") ![]() 要解決這個問題,ggcorr可以通過layout.exp參數(shù)在繪圖的水平軸上添加一些空格。 將任何數(shù)值傳遞給此參數(shù)將在圖的左側(cè)添加一個或多個“不可見的圖塊”,這可以幫助顯示變量名較長的問題: ggcorr(nba[, 3:16], hjust = 0.75, size = 5, color = "grey50", layout.exp = 1) ![]() 其他參數(shù)
ggcorr(nba[, 2:15], limits = FALSE) ![]() 設(shè)置相關(guān)系數(shù)的樣式如果ggcorr的geom參數(shù)設(shè)置為“text”,它將相關(guān)系數(shù)表示為它們的值: ggcorr(nba[, 2:15], geom = "text", nbreaks = 5, palette = "RdYlBu", hjust = 1) ![]() ggcorr(nba[, 2:15], geom = "text", nbreaks = 5, palette = "RdYlBu", hjust = 1, label = TRUE, label_alpha = 0.5) ![]() 控制內(nèi)部值由于ggcorr生成ggplot2對象,因此理解對象是如何構(gòu)造的以便從中獲取更具體的圖可能很有用。 每個ggcorr對象都包含以下數(shù)據(jù)對象: head(ggcorr(nba[, 2:15])$data, 5) ![]() 在相關(guān)圖上突出顯示較高相關(guān)系數(shù)如下例所示,其中使用不同顏色的負系數(shù)和正系數(shù)突出顯示優(yōu)于0.5或低于-0.5的所有相關(guān)系數(shù): ggcorr(nba[, 2:15], geom = "blank", label = TRUE, hjust = 0.75) + geom_point(size = 10, aes(color = coefficient > 0, alpha = abs(coefficient) > 0.5)) + scale_alpha_manual(values = c("TRUE" = 0.25, "FALSE" = 0)) + guides(color = FALSE, alpha = FALSE) ![]() |
|