介紹ggcorr函數(shù)是一個(gè)可視化函數(shù),用于將矩陣?yán)L制為ggplot2圖片。 為何使用ggcorr包相關(guān)矩陣顯示相對(duì)大量連續(xù)變量之間的相關(guān)系數(shù)。 然而,雖然R提供了一種通過(guò)cor函數(shù)創(chuàng)建這種矩陣的簡(jiǎn)單方法,但它沒(méi)有為該函數(shù)創(chuàng)建的矩陣提供繪圖方法。ggcorr函數(shù)提供了這樣的繪圖方法,使用ggplot2包中實(shí)現(xiàn)的“圖形語(yǔ)法”來(lái)渲染繪圖。 在實(shí)踐中,其結(jié)果在圖形上接近于corrplot函數(shù)的結(jié)果,這是優(yōu)秀的arm包的一部分。 安裝ggcorr可通過(guò)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ù)控制。
以下是一些示例,說(shuō)明如何將不同的關(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)默認(rèn)情況下,ggcorr使用從-1到+1的連續(xù)色標(biāo)來(lái)顯示矩陣中表示的每個(gè)相關(guān)的強(qiáng)度。 要切換到分類(lèi)顏色,用戶(hù)所要做的就是添加nbreaks參數(shù),該參數(shù)指定顏色標(biāo)度中應(yīng)包含的斷點(diǎn)數(shù): ggcorr(nba[, 2:15], nbreaks = 5)
對(duì)色階的進(jìn)一步控制包括name參數(shù)(用于設(shè)置其標(biāo)題),legend.size參數(shù)(用于設(shè)置圖例文本的大?。┖蚻egend.position參數(shù)(用于控制圖例的顯示位置)。 后兩個(gè)只是ggplot2主題中相同參數(shù)的快捷方式,由于該圖是一個(gè)ggplot2對(duì)象,所有其他相關(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使用默認(rèn)的顏色漸變,從亮紅色到淺灰色到亮藍(lán)色。 可以通過(guò)low,mid和high參數(shù)修改此漸變,這與ggplot2中的scale_gradient2控制器類(lèi)似: ggcorr(nba[, 2:15], low = "steelblue", mid = "white", high = "darkred") 默認(rèn)情況下,漸變的中點(diǎn)設(shè)置為0,表示無(wú)相關(guān)關(guān)系。 中點(diǎn)參數(shù)可用于修改此設(shè)置。 特別是,將中點(diǎn)設(shè)置為NULL將自動(dòng)選擇中值相關(guān)系數(shù)作為中點(diǎn),并將向用戶(hù)顯示該值: ggcorr(nba[, 2:15], midpoint = NULL) 控制色標(biāo)顏色的最后一個(gè)選項(xiàng)是通過(guò)palette參數(shù)使用ColorBrewer調(diào)色板。 但是只有在使用nbreaks參數(shù)的前提時(shí),才能使用palette參數(shù): ggcorr(nba[, 2:15], nbreaks = 4, palette = "RdGy") 注意:嘗試在顏色標(biāo)度上使用ColorBrewer調(diào)色板時(shí),調(diào)色板中的顏色比調(diào)色板中的顏色多,將向用戶(hù)返回警告(實(shí)際上是兩個(gè)相同的警告)。 控制主要形狀默認(rèn)情況下,ggcorr使用顏色來(lái)表示相關(guān)系數(shù)的強(qiáng)度,其方式與熱圖中的顏色深淺表示觀察數(shù)值大小的方式類(lèi)似。但是ggcorr也可以將相關(guān)性表示為大小不同的圓圈,只需將其geom參數(shù)設(shè)置為“circle”: ggcorr(nba[, 2:15], geom = "circle", nbreaks = 5)
在該小插圖的末尾示出了對(duì)ggcorr的幾何形狀的附加控制。 控制系數(shù)標(biāo)簽ggcorr可以通過(guò)將label參數(shù)設(shè)置為T(mén)RUE來(lái)在相關(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)簽在上面的幾個(gè)例子中,變量標(biāo)簽的渲染(在相關(guān)矩陣的對(duì)角線(xiàn)上示出)不一定是最佳的。 要修改這些標(biāo)簽的方面,用戶(hù)所要做的就是將geom_text支持的任何參數(shù)直接傳遞給ggcorr。 下面的示例顯示了如何在將標(biāo)簽向左移動(dòng)并更改顏色時(shí)減小標(biāo)簽的大?。?/p> ggcorr(nba[, 2:15], hjust = 0.75, size = 5, color = "grey50") 相關(guān)矩陣中的變量標(biāo)簽可能出現(xiàn)的一個(gè)問(wèn)題是它們太長(zhǎng)而無(wú)法在圖的左下方完整顯示。 如下圖所示MIN變量似乎在繪圖的最左下角被遮蓋了: ggcorr(nba[, 3:16], hjust = 0.75, size = 5, color = "grey50") ![]() 要解決這個(gè)問(wèn)題,ggcorr可以通過(guò)layout.exp參數(shù)在繪圖的水平軸上添加一些空格。 將任何數(shù)值傳遞給此參數(shù)將在圖的左側(cè)添加一個(gè)或多個(gè)“不可見(jiàn)的圖塊”,這可以幫助顯示變量名較長(zhǎng)的問(wèn)題: 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對(duì)象,因此理解對(duì)象是如何構(gòu)造的以便從中獲取更具體的圖可能很有用。 每個(gè)ggcorr對(duì)象都包含以下數(shù)據(jù)對(duì)象: head(ggcorr(nba[, 2:15])$data, 5) ![]() 在相關(guān)圖上突出顯示較高相關(guān)系數(shù)如下例所示,其中使用不同顏色的負(fù)系數(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) ![]() |
|