【问题标题】:How do I display Correlation matrix as percentage如何将相关矩阵显示为百分比
【发布时间】:2019-03-27 03:49:09
【问题描述】:

我试图将相关标签显示为百分比,而不是在数字 -1 和 1 之间显示它们。我可以使用包 ggcorrplot 来做到这一点,但是这样做会带走显示它们的能力颜色托盘并仅以灰色单元格颜色显示它。看起来是这样的

我可以使用包ggcorrplot 做到这一点,但是这样做会剥夺使用调色板显示它们的能力。

#if(!require(devtools)) install.packages("devtools")
#devtools::install_github("kassambara/ggcorrplot")
library(ggcorrplot)
corr <- round(cor(test3),3)
corr <- corr * 100
ggcorrplot(corr, hc.order = TRUE, type = "lower",
           lab = TRUE, colors = c("blue", "white", "red"))

有没有办法以百分比形式获得结果,并且仍然具有我们通常在相关矩阵图中具有的颜色。还有任何向标签添加百分比的方法,因为目前它只显示数字。

提前非常感谢!!

【问题讨论】:

  • 为什么需要百分比?相关系数不是一个比例,所以仅仅乘以 100 是没有意义的。例如,零值并不意味着 0%。
  • @neilfws 如果我将两个变量之间的相关性设为 0.5,这是否意味着它们之间存在 50% 的相关性
  • @neilfws 是正确的。如果没有,你应该做corr = round(cor(test3)^2,3)
  • @AnalyticsTeam, cor(默认)为您提供 Pearson 相关系数 (r)。如果你把它平方,你会得到
  • @d.b.非常感谢所有的帮助。真的很感激。

标签: r correlation ggcorrplot


【解决方案1】:
corr <- round(cor(mtcars)^2,3)
corr <- corr * 100

diag(corr) = NA
corr[upper.tri(corr)] = NA

library(reshape2)
d = melt(corr)
d = d[!is.na(d$value),]

library(ggplot2)
ggplot(d, aes(x = Var1,
              y = Var2,
              fill = value,
              label = ifelse(is.na(value), "", paste0(value,"%")))) +
    geom_tile(color = "white") +
    scale_fill_gradientn(colors = c("green", "white", "red"), na.value = NA) +
    geom_text() +
    theme_bw()

【讨论】:

  • 非常感谢您的回复。有没有办法可以将%粘贴到d的值列中
  • 非常感谢您的回复,就像魔术一样。这正是我想要的
猜你喜欢
  • 1970-01-01
  • 2012-10-03
  • 2017-12-14
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多