首页 > 解决方案 > 如何制作显示 p 值且轴部分斜体的相关矩阵

问题描述

我有一个由 26 种不同鸟类组成的数据集,我在 cran R 中对这些鸟类进行了 Spearman 相关。我想将我的结果显示为带有颜色的相关矩阵。我的问题是轴需要在正常文本中使用丹麦语名称,然后是斜体的拉丁名称。此外,我需要矩阵来显示哪些相关性是显着的。

我尝试使用 ggcorrplot,我可以在其中将非显着相关性设为空白,但我无法弄清楚如何更改轴上的名称。

我还尝试使用 cor 和 ggplot 来更改轴上的名称(我刚刚在脚本中显示了其中一个轴的代码,因为它占用了大量空间),但我不知道我如何显示哪些相关性不显着或显着。

在下面的脚本中,我使代码适合 R 中可用的数据集 mtcars。

相关性 ggcorrplot

library(ggcorrplot)
data("mtcars")

correlation <- cor(mtcars, method = "spearman")
p.mat <- cor_pmat(mtcars)
ggcorrplot(corr = correlation, type = "lower", insig = "blank", p.mat = p.mat)

在此处输入图像描述

相关 cormat 和 ggplot

library(reshape2)
library(ggplot2)
library(Hmisc)

cormat <- cor(mtcars, method = "spearman")
get_lower_tri <- function(cormat) {
  cormat[upper.tri(cormat)] <- NA 
  return(cormat)
} 

low_tri <- get_lower_tri(cormat) 
melted_cormat <- melt(low_tri, na.rm = TRUE)

ggplot(data = melted_cormat, aes(x = Var1, y = Var2, fill = value)) +
  geom_tile(color = "white") + scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0, limit = c(-1,1), space = "Lab") + scale_y_discrete(labels = c(expression('mpg'~italic("mpg")), expression('cyl'~italic("cyl")), expression('disp'~italic("disp")), expression('hp'~italic("hp")), expression('drat'~italic("drat")), expression('wt'~italic("wt")), expression('qsec'~italic("qsec")), expression('vs'~italic("vs")), expression('am'~italic("am")), expression('gear'~italic("gear")), expression('carb'~italic("carb"))))

在此处输入图像描述

我正在寻找的结果应该具有来自 ggplot 的轴,但显示为 ggcorrplot 的显着相关性。显着的相关性也可以用 X 表示不显着或 p 值的星号,我只需要在图上显示 p 值的一种表示。

标签: rggplot2data-visualizationcorrelation

解决方案


推荐阅读