首页 > 解决方案 > ggplot2:将协方差矩阵绘制为没有行/列名的热图

问题描述

我有一个协方差矩阵,这里的小选择:

m <- matrix(c(2.61949322E+00, 2.27966995E+00, 1.68120147E+00,
              2.27966995E-01, 2.31885465E+01, 1.53558372E+00,
              1.68120147E+00, 1.53558372E+00, 1.26129096E+00),
            nrow = 3, ncol = 3)

所以没有标题/行信息。如果不存在 x/y 信息,如何根据这些值绘制简单的热图?

直接矩阵不起作用,所以我已经习惯as.data.frame转换为数据帧,但我不确定。

我试图融化

require(reshape2)

m_melted <- melt(m)

ggplot(m_melted, aes(x= Var1, y = Var2, fill = value)) +
  geom_tile()

但是 R 在执行此操作时会挂起/崩溃。

标签: rggplot2

解决方案


是因为您使用bm_test的是数据而不是m_melted?:

m <- matrix(c(2.61949322E+00, 2.27966995E+00, 1.68120147E+00,
              2.27966995E-01, 2.31885465E+01, 1.53558372E+00,
              1.68120147E+00, 1.53558372E+00, 1.26129096E+00),
            nrow = 3, ncol = 3)

library(reshape)
library(ggplot2)

m_melted <- melt(m)

ggplot(m_melted, aes(x= X1, y = X2, fill = value)) +
  geom_tile()

推荐阅读