R 交互相关矩阵

R 交互相关矩阵,r,ggplot2,plotly,R,Ggplot2,Plotly,我想在这种意义上绘制相关矩阵,它应该是交互式的,并在ggplot2或plotĀ中同时显示相关值和相应的p值 我尝试了以下代码 library(ggplot2) library(plotly) library(reshape) library(Hmisc) x <- Seatbelts y <- as.matrix(x) rt <- rcorr(y) mtlr <- melt(rt$r) mtlp &

我想在这种意义上绘制相关矩阵,它应该是交互式的,并在ggplot2或plotĀ中同时显示相关值和相应的p值

我尝试了以下代码

    library(ggplot2)
    library(plotly)
    library(reshape)
    library(Hmisc)

    x <- Seatbelts
    y <- as.matrix(x)
    rt <- rcorr(y)
    mtlr <- melt(rt$r)
    mtlp <- melt(rt$P) 
    gx <- ggplot(mtl, aes(X1, X2, fill = value)) + geom_tile() + 
      scale_fill_gradient(low = "cyan",  high = "red")
    ggplotly(gx)
库(ggplot2)
图书馆(绘本)
图书馆(重塑)
图书馆(Hmisc)

x您可以将p值添加为
标签
文本
,然后显示在文本中

库(ggplot2)
图书馆(绘本)
图书馆(重塑)
图书馆(Hmisc)

x最简单的方法是将两个融化的data.frames重新合并在一起,然后使用
文本
美学添加到工具提示中

我使用
restrape2
(而不是
restrape2
)重新进行了熔化,并设置了值名称以使合并更容易

mtlr <- melt(rt$r, value.name = "Correlation")
mtlp <- melt(rt$P, value.name = "P-Value")

mtl <-
  merge(mtlr, mtlp)

作为第一步,您可以尝试将两个data.frames
mtlr
mtlp
合并为一个。在包
dplyr
中查找
merge()
函数或
\u join()
函数。合并值不是问题。谢谢。你解决了我的问题。我只是稍微修改了一下,得到了一个更好的结果。
mtlr <- melt(rt$r, value.name = "Correlation")
mtlp <- melt(rt$P, value.name = "P-Value")

mtl <-
  merge(mtlr, mtlp)
gx <-
  ggplot(mtl
         , aes(Var1, Var2
               , fill = Correlation
               , text = paste("P-val = ", round(`P-Value`, 4)))) +
  geom_tile() + 
  scale_fill_gradient(low = "cyan",  high = "red")
ggplotly(gx)